首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

过滤XML后绑定GridView有关问题

2011-12-25 
过滤XML后绑定GridView问题Caruserid 1 productid 21 P_Name 低合金 /P_NameproductAgor

过滤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
[解决办法]

C# code
/// <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的值 


这句很让我费解~ 什么意思?
[解决办法]

探讨
我的需求是字段user_Id为XML节点user属性可是绑定的时间字段的值是从0开始而不是节点user的属性id的值


这句很让我费解~ 什么意思?

[解决办法]
如楼上,你的那句话很让人费解,再,你的代码确实有问题:dv.RowFilter = " user_Id= " + Session[ "UserID "].ToString();
要加单引号的。

[解决办法]
这个简单啊,网上搜一下就得到答案了.

热点排行