在过滤器表达式后检查 gridview 计数
checking gridview count after filter expression
我正在研究 asp:GridView。在此 aspx 页面上,我为用户提供了通过在文本框中键入特定值来搜索当前 gridview 的选项。然后,我根据用户输入的内容设置了一个SqlDataSource.FilterExpression。
例如,用户键入 "MODEL1" 并点击搜索。那么:
SqlDataSource.FilterExpression = "ModelName= " + "'" + TextBox.Text + "'";
我接下来需要做的是检查是否拉到了结果?显然我可以判断它是否不在页面上,因为没有可见的 gridview。但是,我需要一种方法来捕获它,以便我可以重置 FilterExpression 并向用户抛出一条 "Incorrect search" 消息。我在 FilterExpression 下看不到任何对我有帮助的方法,我已经尝试 GridView.Rows.Count 但它似乎不起作用。我还有其他选择吗?还是我的 Rows.Count 方法有误?
下面是触发搜索事件时发生的一些额外代码:
if (TextBox.Text == string.Empty)
{
errorLabel.Text = "Please enter a value";
}
else
{
SqlDataSource.FilterExpression = "ModelName= " + "'" + TextBox.Text + "'";
if (!GridView.Rows.Count > 0)
{
errorLabel.Text = "Model not found";
SqlDataSource.FilterExpression = "";
}
}
编辑: 只是想补充一点 GridView.Rows.Count 产生一个值 51,这是没有 FilterExpression 时存在的行数。
将你的结果放在 DataView
中,其中有 Count
属性:
SqlDataSource.FilterExpression = "ModelName= " + "'" + TextBox.Text + "'";
System.Data.DataView dv = (DataView)SqlDataSource.Select(DataSourceSelectArguments.Empty);
dv.RowFilter = SqlDataSource.FilterExpression;
int RowCount = dv.Count;
我建议您在 FilterExpression 上使用 String.Format()
。它可以让您避免语法错误:
SqlDataSource.FilterExpression = String.Format("ModelName='{0}'", TextBox.Text);
我正在研究 asp:GridView。在此 aspx 页面上,我为用户提供了通过在文本框中键入特定值来搜索当前 gridview 的选项。然后,我根据用户输入的内容设置了一个SqlDataSource.FilterExpression。
例如,用户键入 "MODEL1" 并点击搜索。那么:
SqlDataSource.FilterExpression = "ModelName= " + "'" + TextBox.Text + "'";
我接下来需要做的是检查是否拉到了结果?显然我可以判断它是否不在页面上,因为没有可见的 gridview。但是,我需要一种方法来捕获它,以便我可以重置 FilterExpression 并向用户抛出一条 "Incorrect search" 消息。我在 FilterExpression 下看不到任何对我有帮助的方法,我已经尝试 GridView.Rows.Count 但它似乎不起作用。我还有其他选择吗?还是我的 Rows.Count 方法有误?
下面是触发搜索事件时发生的一些额外代码:
if (TextBox.Text == string.Empty)
{
errorLabel.Text = "Please enter a value";
}
else
{
SqlDataSource.FilterExpression = "ModelName= " + "'" + TextBox.Text + "'";
if (!GridView.Rows.Count > 0)
{
errorLabel.Text = "Model not found";
SqlDataSource.FilterExpression = "";
}
}
编辑: 只是想补充一点 GridView.Rows.Count 产生一个值 51,这是没有 FilterExpression 时存在的行数。
将你的结果放在 DataView
中,其中有 Count
属性:
SqlDataSource.FilterExpression = "ModelName= " + "'" + TextBox.Text + "'";
System.Data.DataView dv = (DataView)SqlDataSource.Select(DataSourceSelectArguments.Empty);
dv.RowFilter = SqlDataSource.FilterExpression;
int RowCount = dv.Count;
我建议您在 FilterExpression 上使用 String.Format()
。它可以让您避免语法错误:
SqlDataSource.FilterExpression = String.Format("ModelName='{0}'", TextBox.Text);