2012-05-15 75 views
0

我在我的數據庫中有一列是有點。該列從一個存儲過程進入我的gridview,並將gridview中的列設置爲一個複選框,這就好了。對於所有其他列我使用ASP.NET 2.0 Gridview位複選框

GridViewRow row = ((GridView)sender).SelectedRow; 
    textbox.Text = row.Cells[x].Text.ToString(); 

我已經使用這個設置所有文本框從數據庫中我的表單。但我試圖找到代碼訪問gridview中的複選框。我曾嘗試

row.cells[bitColumn].Text.ToString 

但是,這並不返回1或0。

所以我的問題是這樣的,當你有在GridView你如何訪問一個複選框?這樣我就可以根據這一點在我的表單中設置一個複選框。

+0

因爲我處於時間緊縮狀態,我進入我的數據庫並使用一個case statment並將結果強制轉換爲一個varchar,迫使gridview將列作爲我可以訪問的文本,因爲我一直在其他列。雖然爲了參考的利益。我會繼續回答這個問題,以找到正確的方式去做我想爲那些可能會追隨我的人完成的事情。 –

回答

1

我不喜歡通過編號索引來訪問列 - 你永遠不知道他們什麼時候會改變。相反,通過名字來訪問它們:

CheckBox cb = (CheckBox)Row.FindControl("chkSelector");

chkSelector是ASP.net CheckBox控件。 然後你可以檢查是否cb.Checked。這將返回一個布爾值爲true/false,然後您可以將其映射到您的位。如果cb.Checkedtrue賦值1否則賦值0.

+0

這是否工作,如果我自動生成列。 GridView中的複選框列是在運行時生成的,所以我不確定如何訪問它。 –

+0

嗨邁克爾,在這種情況下,只要使用你的索引,如果你願意。但將其分配給複選框控件'複選框cb =(複選框)row.Cells [x];'並檢查'cb.Checked'是否爲真。 – JonH

+0

gotcha再次感謝您的快速repsonse和信息。 –