![](/img/trans.png)
[英]How can I conditionally bind a gridview row inside the RowDataBound event?
[英]How can i find Last row in a gridview on RowDataBound
protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
**if (e.Row.RowIndex >= gridview1.PageSize) // ROW FOOTER TOTAL**
{
e.Row.BackColor = System.Drawing.Color.Firebrick;
e.Row.ForeColor = System.Drawing.Color.White;
}
}
該代碼有時有效,有人可以幫助我
DM,歡呼聲
您可以嘗試在PreRender事件中找到最后一列
protected void grid_PreRender(object sender, EventArgs e)
{
GridViewRow row = grdAlert.Rows[grdAlert.Rows.Count - 1];
// do stuff with your row
}
如果只需要更改頁腳的樣式,則可以使用
<asp:GridView ID="grid" runat="server" FooterStyle="your style"></asp:GridView>
網格視圖在完成每行的綁定之前似乎沒有行數。 因此,另一個想法是:
您能否從網格視圖綁定到的數據表中確定行數,然后將其存儲在變量中以備后用?
你可以找到像這樣的最后一行
GridViewRow row = GridView1.Rows[GridView1.Rows.Count-1];
或使用這個
protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView grid = (GridView)sender;
if(e.Row.RowIndex == (grid.Rows.Count - 1))
{
//last row
}
}
}
似乎您要在RowDataBound
檢測頁腳行,因為您已經注釋了//ROW FOOTER TOTAL
,只需檢查DataControlRowType.Footer
:
protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer)
{
// here it is
}
}
否則,您可以將RowIndex
與展開的DataItem
的行進行比較:
DataRowView row = (DataRowView)e.Row.DataItem;
if (e.Row.RowIndex == row.DataView.Count - 1) ; // last row
在頁面加載方法中,設置顏色如下
protected void Page_Load(object sender, EventArgs e)
{
//code what you currently have ....
// add below code after that
GridViewRow row = GridView1.Rows.Count-1;
row.BackColor = System.Drawing.Color.Firebrick;
row.ForeColor = System.Drawing.Color.White;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.