11 回答

TA貢獻1820條經驗 獲得超2個贊
你這樣寫代碼是有問題的:
((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0]))
應該是 :TextBox a=((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])) as TextBox;
?
if(a!=null){
才是textbox,否則是是哦。
}
你那個錯誤,說明有的不是textbox,有的是System.Web.UI.WebControls.HyperLink
檢查儀下代碼

TA貢獻1895條經驗 獲得超3個贊
為什么要自己寫代碼呢?gridview本身就自帶新增,編輯,刪除功能啊?不設計界面3分鐘就搞定了.1L已經說得很明白了,你把控件都轉成Textbox去讀取它的值不錯,關鍵是你里面某一列是個HyperLink(超鏈接應該知道吧?),系統轉不了TEXTBOX

TA貢獻1818條經驗 獲得超3個贊
你UI的代碼是怎樣的,是用的模板列嗎?如果是的,請參照下面的方法
例如:這一行的第一列的某個文本框的ID為txtTest,在更新這一行的時候獲取txtTest的值的代碼為
((TextBox)GridView1.Rows[e.RowIndex].FindControl("txtTest")).Text.Trim();
或者
((TextBox)GridView1.Rows[e.RowIndex].Cells[0].FindControl("txtTest")).Text.Trim();
可以不定位到單元格的,因為如果在后期,你想在這一列之前加上一列,那么你的列索引就要變了。
- 11 回答
- 0 關注
- 558 瀏覽
添加回答
舉報