dim drv as system.data.datarowview=ctype(e.row.dataitem,system.data.datarowview)
e是gridviewroweventargs
问题是:
e.row.dataitem不是列吗?列怎么能换成行datarowview了还有这句话是什么意思?
System.Diagnostics.Debug.WriteLine(e.Row.DataItem.ToString())谢谢

解决方案 »

  1.   

    e.Row.DataItem是当前行的数据项事实上是一个DataRowView ,绝对不是列System.Diagnostics.Debug.WriteLine(e.Row.DataItem.ToString())
    ======
    这个可以在输出窗口查看调试的信息
      

  2.   

    e.row.dataitem不是列吗?列怎么能换成行datarowview了 
    ----------------------------谁告诉你dataitem是列的?
      

  3.   

    发个例子.看看其中的一些语句
    <%@ Page language="VB" %>
    <%@ import namespace="System.Data" %><script runat="server">
      
      Sub AuthorsGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)    ' Check for a row in edit mode.
        If e.Row.RowState = DataControlRowState.Edit Then
        
          ' Preselect the DropDownList control with the state value
          ' for the current row.
          
          ' Retrieve the underlying data item. In this example
          ' the underlying data item is a DataRowView object. 
          Dim rowView As DataRowView = CType(e.Row.DataItem, DataRowView)
          
          ' Retrieve the state value for the current row. 
          Dim state As String = rowView("state").ToString()
          
          ' Retrieve the DropDownList control from the current row. 
          Dim list As DropDownList = CType(e.Row.FindControl("StatesList"), DropDownList)
          
          ' Find the ListItem object in the DropDownList control with the 
          ' state value and select the item.
          Dim item As ListItem = list.Items.FindByText(state)
          list.SelectedIndex = list.Items.IndexOf(item)
          
        End If
        
      End Sub
      
      Sub AuthorsGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)    ' Retrieve the row being edited.
        Dim row As GridViewRow = AuthorsGridView.Rows(AuthorsGridView.EditIndex)
        
        ' Retrieve the DropDownList control from the row.
        Dim list As DropDownList = CType(row.FindControl("StatesList"), DropDownList)
        
        ' Add the selected value of the DropDownList control to 
        ' the NewValues collection. The NewValues collection is
        ' passed to the data source control, which then updates the 
        ' data source.
        e.NewValues("state") = list.SelectedValue
      
      End Sub
      
    </script><html>
      <body>
        <form runat="server">
            
          <h3>GridViewRow DataItem Example</h3>      <asp:gridview id="AuthorsGridView" 
            datasourceid="AuthorsSqlDataSource" 
            autogeneratecolumns="false"
            autogenerateeditbutton="true" 
            datakeynames="au_id"
            onrowdatabound="AuthorsGridView_RowDataBound"
            onrowupdating="AuthorsGridView_RowUpdating"   
            runat="server"> 
                   
            <columns>
              <asp:boundfield datafield="au_lname"
                headertext="Last Name"/>
              <asp:boundfield datafield="au_fname"
                headertext="First Name"/>
              <asp:templatefield headertext="State">
                <itemtemplate>
                  <%#Eval("state")%>
                </itemtemplate>
                <edititemtemplate>
                  <asp:dropdownlist id="StatesList"
                    datasourceid="StatesSqlDataSource"
                    datatextfield="state"  
                    runat="server"/>  
                  <asp:sqldatasource id="StatesSqlDataSource"  
                    selectcommand="SELECT Distinct [state] FROM [authors]"
                    connectionstring="server=localhost;database=pubs;integrated security=SSPI"
                    runat="server">
                  </asp:sqldatasource>
                </edititemtemplate>            
              </asp:templatefield>
            </columns>
                                  
          </asp:gridview>
                
          <!-- This example uses Microsoft SQL Server and connects -->
          <!-- to the Pubs sample database.                        -->
          <asp:sqldatasource id="AuthorsSqlDataSource"  
            selectcommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]"
            updatecommand="UPDATE authors SET [au_lname]=@au_lname, [au_fname]=@au_fname, [state]=@state WHERE au_id=@au_id"
            connectionstring="server=localhost;database=pubs;integrated security=SSPI"
            runat="server">
          </asp:sqldatasource>
                
        </form>
      </body>
    </html>
      

  4.   

    那为什么要把datarowview写成dataitem?dataitem具体指什么?谢谢大哥