实现后台管理代码,将数据库显示出来,之后修改。用datagrid做的,可是点击edit之后,无法显示文本框,怎么回事?
以下是代码:
<asp:DataGrid ID="exp" runat="server" EditItemStyle-BackColor ="yellow" EditItemStyle-ForeColor ="black" OnEditCommand ="DoItemEdit" OnCancelCommand ="DoItemCancel" OnDeleteCommand="DoItemDelete" AutoGenerateColumns ="false">
   <Columns >
   <asp:BoundColumn DataField="testid" HeaderText="准考证号"></asp:BoundColumn>
   <asp:TemplateColumn HeaderText ="公司">
   <ItemTemplate >
   <asp:Label ID="com" runat ="server" Text ='<%# Container.DataItem("company") %>'></asp:Label></ItemTemplate>
   <EditItemTemplate>
   <asp:TextBox ID="company" Text='<%# DataBinder.Eval (Container.DataItem, "company")%>' runat="server"></asp:TextBox>
   </EditItemTemplate>
   </asp:TemplateColumn>
   <asp:EditCommandColumn EditText ="Edit" CancelText ="Cancel" UpdateText ="Update"></asp:EditCommandColumn>
   </Columns>
   </asp:DataGrid> 
谢谢指点~

解决方案 »

  1.   

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            DataSet newds = new DataSet();
            newds = (DataSet)Session["ds"];
            GridView1.DataSource = newds;
            GridView1.DataBind();
        }
      

  2.   

    正在跟,在编辑sub里给textbox赋值时说“未将对象引用设置到对象的实例”
    现在是点击edit后根本无法进入编辑,不变成文本框,郁闷
    第一次用,什么都不太懂,看网上写的,差不多,这样呀
    请教请教
      

  3.   

    在编辑sub里给textbox赋值时说“未将对象引用设置到对象的实例”不是很明显的错误吗?textbox的id不对呢!LZ把所有的代码贴上来看看!
      

  4.   

    没什么代码了,剩下的只是绑定数据库之类,就这些
    Public Class changeExp : Inherits Page
        Protected exp As DataGrid
        Protected com1 As Label
        Protected company1 As TextBox    Public Sub Page_Load()
            If Not IsPostBack Then
                Dim expstr, expselect, id As String
                id = Session("tid")
                expstr = "database=CETTIC;server=localhost;uid=sa;pwd=;"
                expselect = "SELECT * FROM experient WHERE testid=2"
                Dim expConn As New SqlConnection(expstr)
                Dim expAdapt As New SqlDataAdapter(expselect, expConn)
                Dim expSet As New DataSet()
                expAdapt.Fill(expSet, "experient")
                Dim expView As New DataView(expSet.Tables("experient"))
                exp.DataSource = expView
                exp.DataBind()
            End If    End Sub
        Public Sub DoItemCancel(ByVal objSource As Object, ByVal objArgs As DataGridCommandEventArgs)
            exp.EditItemIndex = -1    End Sub
        Public Sub DoItemDelete(ByVal objSource As Object, ByVal objArgs As DataGridCommandEventArgs)    End Sub
        Public Sub DoItemEdit(ByVal objSource As Object, ByVal objArgs As DataGridCommandEventArgs)
            company1.Text = "griea"
        End Sub
      

  5.   

    我写的贴给你看看,能显示出来
     Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand        Try
                Dim itemCell As TextBox = CType(e.Item.Cells(0).Controls(0), TextBox)
                Dim Item As Integer = itemCell.Text.Trim            '定义各个字段文本框            Dim TxtPlace As TextBox = CType(e.Item.Cells(1).Controls(0), TextBox)
                Dim TxtName As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
                Dim TxtPhoneNumber As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)
                Dim TxtPHSNumber As TextBox = CType(e.Item.Cells(4).Controls(0), TextBox)
                Dim TxtTitle As TextBox = CType(e.Item.Cells(5).Controls(0), TextBox)
                Dim TxtTitleIndex As TextBox = CType(e.Item.Cells(6).Controls(0), TextBox)
                Dim TxtEmail As TextBox = CType(e.Item.Cells(7).Controls(0), TextBox)            Dim Comm As New OracleCommand
                Comm = OraConn.CreateCommand
                Comm.CommandText = "Update T_PhoneNumber Set Place='" & TxtPlace.Text.Trim & "',Name='" & TxtName.Text.Trim & "',PhoneNum='" & TxtPhoneNumber.Text.Trim & "',PHSNum='" & TxtPHSNumber.Text.Trim & "',Title='" & TxtTitle.Text.Trim & "',TitleIndex='" & TxtTitleIndex.Text.Trim & "',Email='" & TxtEmail.Text.Trim & "' Where ID=" & Item & ""
                If OraConn.State = ConnectionState.Closed Then
                    OraConn.Open()            End If
                Comm.ExecuteNonQuery()
                OraConn.Close()
            Catch ex As Exception
                BtDept.Text = ex.Message
            End Try        DataGrid1.EditItemIndex = -1
            '绑定数据到DataGrid1中
            RefreshData()    End Sub Private Sub DataGrid1_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.EditCommand        DataGrid1.EditItemIndex = e.Item.ItemIndex.ToString
            ’绑定数据        
            RefreshData()
        End SubSub RefreshData()
             Try
                Dim DA As New OracleDataAdapter("Select * From T_PhoneNumber Where SectionName='" & MyStr & "' Order By TitleIndex,SectionName,PhoneNumber", OraConn)
                Dim DS As New DataSet
                DA.Fill(DS, "PhoneNumber")
                DataGrid1.DataSource = DS.Tables(0)
                DataGrid1.DataBind()            DA.Dispose()
                DS.Dispose()        Catch ex As Exception
                BtDept.Text = ex.Message
            End Try    End Sub你试试看,我的代码不够完善,希望抛砖引玉,大家共同完善。