清除搜索框后的Gridview数据绑定问题

时间:2016-07-29 16:18:04

标签: c# asp.net gridview

我使用sqldatasource来绑定gridview。如果我单击搜索按钮,我将使用以下代码使用不同的存储过程sqldatasource重新绑定gridview。如果我清除搜索框并再次单击搜索,我希望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();
        }

2 个答案:

答案 0 :(得分:2)

您可以在绑定数据之前清除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();

答案 1 :(得分:0)

您是说当清除搜索框并单击回车时,您的相等比较不能按预期工作,因此会进入if语句?

请改为尝试:

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