我使用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();
}
答案 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
}