如何取得DataGrid繫結列和模板列中的值

2021-04-14 00:45:09 字數 1887 閱讀 4426

有的時候想取不是編輯狀態的值,這個時候通常會使用模板列中放置textbox通過e.item.findcontrol取值,有的網友問為什麼取不到?這要看你前台的列怎麼寫的了,下面分別寫出四種情況和這四種情況下面的取值方式:

1<

asp:datagrid 

id="datagrid1"

runat

="server"

autogeneratecolumns

="false"

allowpaging

="true"

>

2<

columns

>

3<

asp:boundcolumn 

datafield

="vname"

headertext

="姓名0"

>

asp:boundcolumn

>

4<

asp:templatecolumn 

headertext

="姓名1"

>

5<

itemtemplate

>

6姓名 

7itemtemplate

>

8asp:templatecolumn

>

9<

asp:templatecolumn 

headertext

="姓名2"

>

10<

itemtemplate

>

11itemtemplate

>

13asp:templatecolumn

>

14<

asp:templatecolumn 

headertext

="姓名3"

>

15<

itemtemplate

>

16<

asp:label 

id="name"

runat

="server"

text

='<%#databinder.eval(container.dataitem,"vname")%

>

'> 

17asp:label

>

18itemtemplate

>

19asp:templatecolumn

>

20<

asp:buttoncolumn 

text

="刪除"

buttontype

="pushbutton"

commandname

="del"

>

asp:buttoncolumn

>

21columns

>

22asp:datagrid

>

列出了4種大家可能遇到的列:

(1)繫結列

(2)模板列中直接放靜態的字串

(3)模板列中直接放繫結的字串

(4)模板列中通過label放繫結的字串

下面說明在按下了刪除按鈕以後的四種取值的方式:

1if(e.commandname=="

del") 2

(1)第一種用繫結列的方式可以直接通過cells[i].text取

(2)第二種方式也直接可以取,但是討厭的vs.net總是會在前台把列中的內容換行,所以這裡還需要對輸出的東西進行去除首尾的空格

(3)第三種方式不能直接通過cells[i].text取到值,可以通過上面給出的方法來取,同樣需要去除首尾的空格

(4)第四種方式也是最簡單的方式,當然你可以直接寫e.item.findcontrol("name") 

datagrid 繫結動態列

如題,許多時候我們渴望繫結乙個不確定的列到datagrid,如果你真想這樣那麼10分鐘後你將實現,缺點是你不可能在datagrid的一行中得到乙個完整的類了.她借助了乙個國外的原始碼類,datagriddatasource.cs using system using system.collectio...

如何繫結DATAGRID控制項和XML文件

在網上找了一些資料,但是都沒有說明白原理,幸虧高人指點了解一二 肯定是將xml轉化為dataset 作的。轉化就不說了,肯定了解,就看一下xml轉化為dataset後的結構 我自己寫了點 試驗了以下,我的xml檔案是這樣的 這樣轉化為dataset時其實有兩個表,items 和 item items...

DataGrid繫結DataTable出錯

直接用datagrid.itemsource datatable.defaultview時會出現以下錯誤 target element is textblock name target property is text 需要用collectionviewsource來做中間轉換 另外實時更新資料,所...