有沒有辦法在RowDataBound事件中訪問另一行中的元素?在Gridview RowDataBound中訪問另一行?
public void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// how to compare e.Row with row above or row below?
}
有沒有辦法在RowDataBound事件中訪問另一行中的元素?在Gridview RowDataBound中訪問另一行?
public void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// how to compare e.Row with row above or row below?
}
一兩件事,我覺得你可以做的是...
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中的下一行(已存在並且可以查看)。
如果你在做大規模的東西,但我想所有這些循環都會變得麻煩。
嗨CptSupermrkt,非常感謝您的意見。我做了你的建議 - 只需在數據綁定之後通過gridview循環,而不是在RowDataBound中嘗試這樣做。它增加了一些額外的代碼行,但很好地工作。再次感謝 :) – S200