DataView RowFilter未选择任何行

时间:2016-06-03 19:48:15

标签: c# asp.net visual-studio-2008

我有一个从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选择行。

任何帮助都将不胜感激。

谢谢

1 个答案:

答案 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();
    }
}