过滤XML后绑定GridView问题
<Car>
<user id= "1 ">
<product id= "21 ">
<P_Name> 低合金 </P_Name>
<productAgora> 3.00 </productAgora>
<productUser> 2.400 </productUser>
<productNum> 12 </productNum>
</product>
</user>
<user id= "3 ">
<product id= "22 ">
<P_Name> 低合金 </P_Name>
<productAgora> 5.00 </productAgora>
<productUser> 4.250 </productUser>
<productNum> 100 </productNum>
</product>
</user>
<user id= "2 ">
<product id= "22 ">
<P_Name> 低合金 </P_Name>
<productAgora> 5.00 </productAgora>
<productUser> 4.250 </productUser>
<productNum> 1 </productNum>
</product>
</user>
</Car>
上面是XML文档
ASP。NET代码:
DataSet ds = new DataSet();
ds.ReadXml( "Car.xml ");
decimal productAgora = 0;
decimal productUser = 0;
int productNum = 0;
//过滤XML
DataTable dt = ds.Tables[ "product "];
DataView dv = dt.Copy().DefaultView;
dv.RowFilter = " user_Id= " + Session[ "UserID "].ToString();
gvCar.DataSource = dv;
gvCar.DataBind();
我的需求是字段user_Id为XML节点user属性可是绑定的时间字段的值是从0开始而不是节点user的属性id的值
[解决办法]
具体参见这个
http://blog.csdn.net/kgdiwss/archive/2005/09/07/474121.aspx
[解决办法]
/// <summary> /// 读取Xml返回一个经排序或筛选后的DataView /// </summary> /// <param name="strXmlPath"></param> /// <param name="strWhere">筛选条件,如:"name = 'kgdiwss'"</param> /// <returns></returns> public static DataView GetDataViewByXml(string strXmlPath,string strWhere) { try { DataSet ds = new DataSet(); ds.ReadXml(GetXmlFullPath(strXmlPath)); DataView dv = new DataView(ds.Tables[0]); if(strWhere != null) { dv.RowFilter = strWhere; } return dv; } catch(Exception) { return null; } } #endregion
[解决办法]
顶下
[解决办法]
dv.RowFilter = "user_Id='" + Session[ "UserID "].ToString()+"'";
记得 。net要求 RowFilter 的表达式的值要用 单引号 引起来
[解决办法]
从0开始
decimal productAgora = 0;
decimal productUser = 0;
int productNum = 0;
你把这个去掉下,你一句的跟踪测试看你那个
RowFilter起作用了没
[解决办法]
xml-->datatable-->dataview-->do what you like!
[解决办法]
我的需求是字段user_Id为XML节点user属性可是绑定的时间字段的值是从0开始而不是节点user的属性id的值
这句很让我费解~ 什么意思?
[解决办法]