2013-09-21 45 views
0

我檢查在GridView1_RowDataBound事件複選框值,但得到錯誤「運營商不能應用到字符串類型或布爾操作數」 ..==操作符錯誤的GridView rowbound事件即將在asp.net

這裏我對相同的代碼...

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     for (int i = 1; i < e.Row.Cells.Count - 2; i++) 
     { 
      CheckBox cb = new CheckBox(); 

      if (e.Row.Cells[i].ToString() == true) 
      { 
       cb.Checked = true; 
      } 
      else 
      { 
       cb.Checked = false; 
      } 
      e.Row.Cells[i].Controls.Add(cb); 
     } 
    } 
} 

請幫助我.. 在此先感謝..

回答

1

的問題是在這裏:

if (e.Row.Cells[i].ToString() == true) 
{ 
    cb.Checked = true; 
} 

您正在比較字符串值Cells[i].ToString()與布爾值true

如果單元格包含代表真或假的字符串值,則需要將其解析到一個布爾值:

bool result; 
if (Boolean.TryParse(e.Row.Cells[i].Value.ToString(), out result)) 
{ 
    if (result) 
    { 
     .... 
    } 
} 
else 
{ 
    // Item is not a valid boolean - throw an exception or just default to false 
} 
+0

againg得到錯誤「的最佳重載的方法匹配「bool.TryParse(字符串,出bool)'有一些無效的參數「 – vikas

+0

@vikas對不起,你仍然需要'.ToString()'的單元格值。看到我更新的帖子。請注意,這假設單元格的值實際上可以轉換爲布爾值。 –