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

在XML中使用RowFilter怪有关问题,请高手帮解答。小弟我为此困惑了一周了

2012-01-19 
在XML中使用RowFilter怪问题,请高手帮解答。我为此困惑了一周了。我得XML有两个表,如ID是1、2、3、4顺序的使用

在XML中使用RowFilter怪问题,请高手帮解答。我为此困惑了一周了。
我得XML有两个表,如ID是1、2、3、4顺序的使用没问题,但如果改成ID=1、2、4、5时那么在通过RowFilter过滤所得的数据就出问题了,1、2的正常显示4是调用5的数据5没有显示。我通过调试,RowFilter传递的参数没有问题。

我得RowFilter的使用方法如下
      GridView   gvChild   =   (GridView)e.Row.FindControl( "gvChild ");
                        Label   lblID   =   (Label)e.Row.FindControl( "lblID ");
                //lblID是主表ID的绑定值
                        DataSet   ds   =   new   DataSet();
                        ds.ReadXml(Server.MapPath( "db_kh.xml "));
                        DataView   vd   =   new   DataView(ds.Tables[0]);
                        vd.RowFilter   =   "ID= ' "   +   lblID.Text   +   " ' ";
                        gvChild.DataSource   =   vd;
                        gvChild.DataBind();
      上面这段调用第一个表的方法,什么情况下都没有问题都很正常。
      下面这段代码在调用表二时就出现了,这个问题:“如ID是1、2、3、4顺序的使用没问题,但如果改成ID=1、2、4、5时那么在通过RowFilter过滤所得的数据就出问题了,1、2的正常显示4是调用5的数据5没有显示。我通过调试,RowFilter传递的参数没有问题。”
            protected   void   gvChild_RowDataBound(object   sender,   GridViewRowEventArgs   e)
        {
                if   (e.Row.RowType   ==   DataControlRowType.DataRow)
                {
                        GridView   gvlink   =   (GridView)e.Row.FindControl( "gvlink ");
                        Label   lblID   =   (Label)e.Row.FindControl( "lblID ");
                 
                        string   id=gvParent.DataKeys[e.Row.ID].Value;
                        DataSet   dl   =   new   DataSet();
                        dl.ReadXml(Server.MapPath( "db_kh.xml "));

                        DataView   vdl   =   new   DataView(dl.Tables[1]);
                        vdl.RowFilter   =   "User_id= ' "   +   lblID.Text   +   " ' ";
                        gvlink.DataSource   =   vdl;  
                        gvlink.DataBind();
                }
        }

XML文件如下:
这样时就没有问题
<?xml   version= "1.0 "   encoding= "utf-8 "?>
<Users>
    <User   ID= "0 ">


        <Name> 朗力 </Name>
        <Email> boco@263.net </Email>
        <Title> 测试 </Title>
        <Content> 初始数据 </Content>
        <Date> 2007-8-10 </Date>
        <Reply   Name= "Biology "   Content= "回复初始数据 "   />
  </User>
    <User   ID= "1 ">
        <Name> 啊强 </Name>
        <Email> 6@ff.vn </Email>
        <Title> 我在测试一下看行不行, </Title>
        <Content> 我   的刀痕活很好的 </Content>
        <Date> 2007-8-30   0:00:00 </Date>
        <Reply   Name= "我   "   Content= "永永远远也因 "   />
    </User>
    <User   ID= "2 ">
        <Name> 王强 </Name>
        <Email> 6@ff.vn </Email>
        <Title> 三等分三等分三等分   </Title>
        <Content> 三等分三等分三等 </Content>
        <Date> 2007-8-31   0:00:00 </Date>
        <Reply   Name= "88888 "   Content= "1111 "   />
        <Reply   Name= "88888 "   Content= "1111 "   />
    </User>
</Users>
如果这样就出问题了  
<?xml   version= "1.0 "   encoding= "utf-8 "?>
<Users>
    <User   ID= "0 ">
        <Name> 朗力 </Name>
        <Email> boco@263.net </Email>
        <Title> 测试 </Title>
        <Content> 初始数据 </Content>
        <Date> 2007-8-10 </Date>
        <Reply   Name= "Biology "   Content= "回复初始数据 "   />
  </User>
    <User   ID= "2 ">
        <Name> 啊强 </Name>
        <Email> 6@ff.vn </Email>
        <Title> 我在测试一下看行不行, </Title>
        <Content> 我   的刀痕活很好的 </Content>
        <Date> 2007-8-30   0:00:00 </Date>
        <Reply   Name= "我   "   Content= "永永远远也因 "   />
    </User>
    <User   ID= "3 ">
        <Name> 王强 </Name>
        <Email> 6@ff.vn </Email>
        <Title> 三等分三等分三等分   </Title>
        <Content> 三等分三等分三等 </Content>
        <Date> 2007-8-31   0:00:00 </Date>
        <Reply   Name= "88888 "   Content= "1111 "   />
        <Reply   Name= "88888 "   Content= "1111 "   />


    </User>
</Users>



[解决办法]
只要ID的顺序一断就不行了,不知道为何。谢谢
------------------
那就看你的lblID.Text是不是跟xml文件中id一样咯,你的lblID.Text是怎么赋值,是不是连续赋值的

热点排行