2013-06-29 72 views
1

我有一個網格視圖,其中存儲有分頁的城市,每頁有10個城市。如何獲得網格視圖的第二頁上的一行的行索引

如何獲取asp.net中第二頁上任何行的行索引?網格視圖的名稱是gdvCities

我曾嘗試以下:

CheckBox chkcity = (CheckBox)sender; 
GridViewRow gdvrow = (GridViewRow)chkcity.NamingContainer; 
int rowindex = gdvrow.RowIndex; 

回答

0
int rowindex = (gdvrow.RowIndex * gdvCities.PageIndex+1) 

gdvrow.PageIndex會給你網頁的索引,默認情況下,第一頁,頁面索引爲0。所以加1得到確切值

+0

保護無效Checked_click(對象發件人,EventArgs的) { 複選框chkcity =(複選框)發送方; GridViewRow gdvrow =(GridViewRow)chkcity.NamingContainer; // int rowindex = gdvrow.RowIndex%gdvCities.PageSize; int rowindex =(gdvrow.RowIndex * gdvrow.PageIndex + 1));它給出的錯誤是PageIndex不適用於gdvrow。 –

0

請嘗試使用下面的代碼片段。

int rowindex = (gdvrow.RowIndex == 0 ? (gdvCities.PageIndex + 1) : (gdvrow.RowIndex * gdvCities.PageIndex + 1)); 
+0

它適用於除0之外的所有行。 –

+0

我已更新上面的代碼片段。你能再次檢查一下嗎?讓我知道是否有任何顧慮。 –

0

對不起,後晚,但如果有人想知道,這是我的解決方案:

CheckBox chkcity = (CheckBox)sender; 
GridViewRow gdvrow = (GridViewRow)chkcity.NamingContainer; 
int rowindex = gdvrow.RowIndex; 

var pagesize = this.GridView1.PageSize; 
var pageindex = this.GridView1.PageIndex; 
//basically, you want to take the pagesize multiplied by the page index, then subtract that from the rowIndex 
paginatedRowIndex = rowindex - (pagesize * pageindex); 

的paginatedRowIndex變量將是你想利用分頁的GridView時使用的行索引。

-Sahan

0

(GridView1.PageSize * GridView1.PageIndex)+ e.row.rowIndex

相關問題