2016-07-29 31 views
1

我正在使用sqldatasource綁定gridview。如果我點擊搜索按鈕,我將使用下面的代碼重新綁定不同的存儲過程sqldatasource的gridview。如果我清除搜索框並再次單擊搜索,我希望gridview重新綁定到原始數​​據源。但是我總是得到錯誤「過程sp_get_ecr_list沒有參數並且提供了參數。」有什麼想法嗎?Gridview數據綁定問題清除搜索框後

 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

你可以綁定數據之前清除您的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(); 
0

那麼你是說當你清除搜索框並單擊回車,你的平等比較不按照你的意圖工作,因此放入if語句?

試試這個:

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

很抱歉,如果我不就清楚了。我的意思是當我輸入某些內容並搜索它時很好。清除搜索框並再次單擊搜索後,我想將數據重新加載到其原始綁定,但我得到的是錯誤。 – TaroYuki