在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