我正在实现网格视图并在Headers中放置一个文本框,以便能够过滤每列的数据。我为每个文本框的ontextchanged触发器提供了以下代码。
protected void Filter_TextChanged(object sender, EventArgs e)
{
string ColumnName = ((TextBox)sender).Attributes["EventArg"];
string FilterValue = ((TextBox)sender).Text;
if (string.IsNullOrEmpty(FilterValue))
{
EntityDataSource1.Where = "";
}
else
{
int dummy;
if (int.TryParse(FilterValue, out dummy))
{
EntityDataSource1.Where = "it." + ColumnName + " = " + FilterValue;
}else
{
EntityDataSource1.Where = "it." + ColumnName + " Like '%" + FilterValue + "%'";
}
}
}
aspx如下
<asp:TextBox ID="txtCaseNr" runat="server" CssClass="form-control" OnTextChanged="Filter_TextChanged" AutoPostBack="true" TextMode="Number"></asp:TextBox>
到目前为止一切都有效,除了为了防止在文本框中写入期望整数的文本,我设置了textmode=number
。并且在清空文本框以删除过滤器时不会触发它。
我希望我的问题很明确。欢迎任何解决方案。
谢谢,