【发布时间】:2016-06-04 04:07:20
【问题描述】:
我有一个从 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 选择行。
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
在过滤后绑定之前,您没有将 Datatable 分配回您的 GridView;
dgPrintTicket.DataSource = PrintTable;之前DataBind() -
@techspider 我也试过了,但没有用。当我调试程序时,我检查了 PrintView.RowFilter 的值,它是“”空白。
-
根据您的代码,它永远不会为空;只要你在
val中有一些价值。 -
我在 val 中有一个值。我检查了它并在那里。
-
那你的
string.Format不可能不返回值
标签: c# asp.net visual-studio-2008