天天看點

如何取得DataGrid綁定列和模闆列中的值

有的時候想取不是編輯狀态的值,這個時候通常會使用模闆列中放置TextBox通過e.Item.FindControl取值,有的網友問為什麼取不到?這要看你前台的列怎麼寫的了,下面分别寫出四種情況和這四種情況下面的取值方式: 1 2 3 4 5 6 姓名 7 8 9 10 11 <%#DataBinder.Eval(Container.DataItem,"vName")%> 12 13 14 15 16 17 18 19 20 21 22 列出了4種大家可能遇到的列: (1)綁定列 (2)模闆列中直接放靜态的字元串 (3)模闆列中直接放綁定的字元串 (4)模闆列中通過Label放綁定的字元串 下面說明在按下了删除按鈕以後的四種取值的方式: 1if(e.CommandName=="del") 2{ 3 Response.Write(DataGrid1.Columns[0].HeaderText+":"+e.Item.Cells[0].Text+"

"); 4 Response.Write(DataGrid1.Columns[1].HeaderText+":"+e.Item.Cells[1].Text.Trim()+"

"); 5 Response.Write(DataGrid1.Columns[2].HeaderText+":"+((DataBoundLiteralControl)e.Item.Cells[2].Controls[0]).Text.Trim()+"

"); 6 Response.Write(DataGrid1.Columns[3].HeaderText+":"+((Label)e.Item.Cells[3].FindControl("name")).Text+"

"); 7} (1)第一種用綁定列的方式可以直接通過Cells[i].Text取 (2)第二種方式也直接可以取,但是讨厭的vs.net總是會在前台把列中的内容換行,是以這裡還需要對輸出的東西進行去除首尾的空格 (3)第三種方式不能直接通過Cells[i].Text取到值,可以通過上面給出的方法來取,同樣需要去除首尾的空格 (4)第四種方式也是最簡單的方式,當然你可以直接寫e.Item.FindControl("name") http://www.cnblogs.com/mxly/articles/1134763.html