日期:2014-05-20  浏览次数:20474 次

GridView的行數問題
GridView的RowDataBound事件    
i   =   e.Row.DataItemIndex.ToString
    e.Row.Attributes.Add( "onclick ",   "fncSetBgColor( "   &   i   &   ", "   &   Trim(dsTableView.Rows(i).Item( "bikou ").ToString)   &); ")
為什麽初始時候i為-1不是0
這樣就不能從DataSet中取出數據。

------解决方案--------------------
楼主不必困扰,可以用e.Row.RowType判断一下当前行的类型是否是内容行
然后进行相应的操作

使用 RowType 属性确定 GridViewRow 对象表示的行的类型。
DataRow
GridView 控件中的一个数据行。
Footer
GridView 控件中的脚注行。
Header
GridView 控件中的标头行。
EmptyDataRow
GridView 控件中的空行。当 GridView 控件中没有要显示的任何记录时,将显示空行。
Pager
GridView 控件中的一个页导航行。
Separator
GridView 控件中的一个分隔符行。

楼主的代码可改为
void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
i = e.Row.DataItemIndex.ToString;
e.Row.Attributes.Add( "onclick ", "fncSetBgColor( " & i & ", " & Trim(dsTableView.Rows(i).Item( "bikou ").ToString) &); ");
}
}