我有一个从DataView作为源填充的GridView。 当我尝试根据DataView的RowFilter过滤行时没有任何事情发生。
我有一个文本框,允许用户输入要搜索的Item_Number,并应从DataView中选择仅包含该Item_Number的记录。
public DataTable PrintTable
{
set{Session["PrintTable"] = value;}
get
{
if(Session["PrintTable"] == null)
return null;
else
return (DataTable) Session["PrintTable"];
}
}
public DataView PrintView
{
get
{
if (PrintTable != null)
{
DataView dv = new DataView(PrintTable);
dv.AllowEdit = true;
if(SortAscend)
dv.Sort = SortColumn;
else
dv.Sort = SortColumn + " DESC";
return dv;
}
return null;
}
}
Private void BuildGrid()
{
daUnSched.SelectCommand.Parameters["@WC_Id"].Value = WC_Id.Text;
daUnSched.Fill(dsPrintTicket2.SFD10011);
PrintTable = dsPrintTicket2.SFD10011;
dgPrintTicket.DataBind();
}
private void btnGoTo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string val = GoTo.Text.Trim();
if (val.Length > 0)
{
PrintView.RowFilter = string.Format("Item_Number = '" + val + "'");
PrintTable = PrintView.ToTable();
dgPrintTicket.DataBind();
}
}
当我输入Item_Number并按搜索时,会调用btnGoTo_Click方法,但不会根据RowFilter选择行。
任何帮助都将不胜感激。
谢谢
答案 0 :(得分:0)
您尚未将DataTable
分配回GridView
以显示已过滤的结果
private void btnGoTo_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string val = GoTo.Text.Trim();
if (val.Length > 0)
{
PrintView.RowFilter = string.Format("Item_Number = '" + val + "'");
PrintTable = PrintView.ToTable();
dgPrintTicket.DataSource = PrintTable; //Or assign DataView
dgPrintTicket.DataBind();
}
}