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中取出數據。

解决方案 »

  1.   

    这个问题也困扰了我好长时间,好像一开始先绑定Header,这样就是-1,下一行就是第0行数据了。
    以上纯属个人猜测。
      

  2.   

    楼主不必困扰,可以用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) &);");
        }
      }