清除搜索框后出现网格视图数据绑定问题

本文关键字:网格 视图 数据绑定 问题 搜索 清除 | 更新日期: 2023-09-27 17:59:17

我正在使用sqldatasource绑定网格视图。如果我单击搜索按钮,我将使用以下代码用不同的存储过程sqldatasource重新绑定gridview。如果我清除搜索框并再次单击搜索,我希望网格视图重新绑定到原始数据源。但我总是收到错误"过程sp_get_ecr_list没有提供任何参数和自变量。"有什么想法吗?

       if (searchbox.Value.Trim() != "")
        {
            SqlDataSource1.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
            SqlDataSource1.SelectCommand = "sp_get_ecr_list_filter";
            Parameter d = SqlDataSource1.SelectParameters["devNumber"];
            SqlDataSource1.SelectParameters.Remove(d);
            SqlDataSource1.SelectParameters.Add("devNumber", searchbox.Value);
            GridView1.DataBind();
        }
        else
        {
            GridView1.DataBind();
        }

清除搜索框后出现网格视图数据绑定问题

您可以在绑定数据之前清除else子句中的参数列表:

if (!string.IsNullOrWhiteSpace(searchbox.Value))
{
    ...
    SqlDataSource1.SelectParameters.Add("devNumber", searchbox.Value);
}
else
{
    SqlDataSource1.SelectCommand = "sp_get_ecr_list"; // Probably already set earlier in your code
    SqlDataSource1.SelectParameters.Clear();
}
GridView1.DataBind();

那么,你是说当你清除搜索框并单击回车时,你的等式比较没有按你的意图进行,因此会落入if语句中吗?

试试这个:

if (string.IsNullOrEmpty(searchbox.Value)) 
  {
    // Data bind
  }