2011-11-30 65 views

回答

1

一兩件事,我覺得你可以做的是...

foreach (GridViewRow gvrow in GridView1) 
{ 
    //loop through gridview's rows and find the row you're looking for 
} 

相信的RowDataBound添加行以相同的順序數據源中有他們,因此,如果有100個記錄在你的數據表並且將該DataTable綁定到GridView,RowDataBound將按照它們在DataTable中存在的順序爲每一行調用100次。因此,您提到使用RowDataBound將e.Row與上面的OR行或上面的行進行比較......但如果它們按順序進入,則下面沒有行。這是我以前沒有真正想過的,但我記得在做斷點測試時RowDataBound以這種方式運行。

如果你不能得到那樣的工作,並且即使它不漂亮並且沒有得到任何更好的答案,也需要這樣做,那麼可以存儲你的數據綁定數據表的副本或任何源代碼對於數據是ViewState或Session變量,比如ViewState [「myDataTable」]。然後,您可以檢索RowDataBound事件上的DataTable,並查看由e.Row表示的行上下的行(假設您有某種類型的光標,如ID來標識行)。通過這樣做,您可以查看RowDataBound將添加到GridView的下一行,因爲它將成爲DataTable中的下一行(已存在並且可以查看)。

如果你在做大規模的東西,但我想所有這些循環都會變得麻煩。

+0

嗨CptSupermrkt,非常感謝您的意見。我做了你的建議 - 只需在數據綁定之後通過gridview循環,而不是在RowDataBound中嘗試這樣做。它增加了一些額外的代碼行,但很好地工作。再次感謝 :) – S200

1

從霧存儲器,可以從那裏引用GridView的陣列的 S和迭代它們。你應該能夠得到e的位置,並在任何情況下訪問上面的行,不知道下面的行,因爲它們不是數據綁定,但我想,除非這是一行重新綁定的鏡頭。

+0

嗨favoretti,我結束了循環訪問數據綁定後,而不是試圖在ItemDataBound中執行gridview。謝謝你的建議 :)。 – S200

+0

乾杯,很好,你找到你的解決方案:) – favoretti

相關問題