在用
gridview
控制項時,我們經常會碰到獲取當前行的索引,通過索引進行許多操作。例如,可以獲得當前行某乙個控制項元素;設定某一元素的值等等。
下面結合例項介紹幾種獲得
gridview
當前行索引值的方法。
例項:①目的:
獲取gridview
中rowcommand
的當前索引行。
②前台頁面:在
gridview
中新增一模版列,裡面新增乙個
linkbutton
控制項。**:
"操作"
>
"lbtnqianru"
runat=
"server"
commandname=
"qianru"
commandargument=
'<%# eval("id") %>'
>
簽入
"lbtnqianchu "
runat=
"server"
commandname=
"qianchu"
>簽出
如果在後台**中用
e.commandargument
取值的話,前台**就必須在按鈕中設定
commandargument
的值,值為繫結的
資料庫字段。如:
//因為在客戶端中就已經將
linkbutton
的commandargument
與主鍵id
給繫結了所以在此可以直接用
e.commandargument
得出主鍵id的值
intid = convert.toint32(e.commandargument.tostring());
③在gridview
裡已經設定了
linkbutton
為事件處理按鈕,將通過以下方法獲取索引:
protectedvoidgv_company_rowcommand(objectsender, gridviewcommandeventargs e)
}
此外,還有一些方法可以實現獲得當前行索引值。
【方法三】
在linkbutton
控制項的command
事件,利用
sender
的parent
獲取gridview
中的當前行
。protected
void
lbtnqianchu
_command(
object
sender, commandeventargs e)
【方法四】
在linkbutton
控制項的click
事件,獲取
gridview
中的當前行
。protected void linkbutton1_click(object sender, eventargs e)
【方法五】
如果在模板列中新增一下
dropdownlist
控制項,並開啟其
autopostback
屬性,在
dropdownlist
的selectedindexchanged
事件中,
獲取gridview
中的當前行。
下面是selectedindexchanged事件的**摘要:
dropdownlist ddl = (dropdownlist)sender;
gridviewrow gvr = (gridviewrow)ddl.namingcontainer;
int id = int.parse(gridview1.datakeys[gvr.rowindex][0].tostring());
int num = int.parse(ddl.text);
第一句用來獲取觸發事件的
dropdownlist
控制項。第二句就利用該控制項的
namingcontainer
屬性,獲取其容器,也就是
gridviewrow
物件。
由於
dropdowelist
與button
不同,無法指定其
commandname
,所以,通過用
namingcontainer
屬性來解決問題。
先來看看微軟對該namingcontainer
屬性的解釋:
獲取對伺服器控制項的命名容器的引用,此引用建立唯一的命名空間,以區分具有相同
control.id
屬性值的伺服器控制項。
asp.net web
應用程式的每一頁均包含控制項的層次結構。此層次結構與控制項是否生成使用者可見的
ui 無關。給定控制項的命名容器是層次結構中該控制項之上的父控制項,此父控制項實現
inamingcontainer
介面。實現此介面的伺服器控制項為其子伺服器控制項的
id 屬性值建立唯一的命名空間。
當針對列表
web
伺服器控制項(如
repeater
和datalist
伺服器控制項)進行資料繫結時,為伺服器控制項建立唯一的命名空間尤其重要。當資料來源中的多個項建立伺服器控制項的多個例項,且該伺服器控制項是重複控制項的子級時,命名容器確保這些子控制項的每個例項具有不衝突的
uniqueid
屬性值。頁的預設命名容器是請求該頁時生成的
page
類的例項。
可以使用此屬性確定特定伺服器控制項所在的命名容器。
【方法六】
如果模板列中有
checkbox
控制項的情況,通過checkbox1_checkedchanged事件中,
獲取gridview
中的當前行。
checkbox chk = (checkbox)sender;
datacontrolfieldcell dcf = (datacontrolfieldcell)chk.parent;
gridviewrow gvr = (gridviewrow)dcf.parent;
【方法七】
displayindex :<%# container.displayindex %>|| dataitemindex :<%# container.dataitemindex %>
GridView 如何獲取當前行的索引值
在用gridview控制項時,我們經常會碰到獲取當前行的索引,通過索引進行許多操作。例如,可以獲得當前行某乙個控制項元素 設定某一元素的值等等。下面結合例項介紹幾種獲得gridview當前行索引值的方法。例項 目的 獲取gridview中rowcommand的當前索引行。前台頁面 在gridview...
在按鈕事件中訪問GridView中當前行資料
net2.0提供了乙個gridview控制項,這個控制項為我們帶來了許多的方便,但其去掉了datagird中通過事件按鈕訪問某行資料的便捷方式 e.item.itemindex 這樣給訪問gridview中獲取當前行的資料增加了麻煩。在我做專案開發過程中,我也碰到了類似的問題,我先在網上搜尋了下,找...
C WPF DataGrid獲取當前行某列值
0 是指當前行第1列的單元格位置 方法一 private void dg selectedcellschanged object sender,selectedcellschangedeventargs e system.nullreferenceexception 未將物件引用設定到物件的例項。b...