编辑datagrid控件的内容,更新时怎么得到一行中各文本框中的值?
下面是给一个叫memberdata的Datagrid控件写的更新的代码,照一本书上写的
Private Sub memberdata_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles memberdata.UpdateCommand
Dim updateMember As String
Dim upCommand As SqlClient.SqlCommand
Dim myParam As SqlClient.SqlParameter
Dim memberFormData As TextBox
Dim connState As Integer
Dim paramNumber As Integer
Dim paramName As String
Dim conn As SqlClient.SqlConnection
conn = New SqlClient.SqlConnection(Sqlserver)
conn.Open()
updateMember = "Update customer Set attribname = @attribname,"
updateMember = updateMember & " customername=@customername,contact=@contact,"
updateMember = updateMember & " phone=@phone,tax=@tax,address=@address,"
updateMember = updateMember & " Where customerid like @customerid"
upCommand = New SqlClient.SqlCommand(updateMember, conn)
upCommand.Parameters.Add(New SqlClient.SqlParameter("@customerid", SqlDbType.NVarChar, 50))
upCommand.Parameters.Add(New SqlClient.SqlParameter("@customername", SqlDbType.NVarChar, 50))
upCommand.Parameters.Add(New SqlClient.SqlParameter("@contact", SqlDbType.NVarChar, 50))
upCommand.Parameters.Add(New SqlClient.SqlParameter("@phone", SqlDbType.NVarChar, 50))
upCommand.Parameters.Add(New SqlClient.SqlParameter("@address", SqlDbType.NVarChar, 50))
upCommand.Parameters.Item("@customerid").Value = memberdata.DataKeys.Item(e.Item.ItemIndex)
For paramNumber = 1 To upCommand.Parameters.Count - 1
myParam = upCommand.Parameters(paramNumber)
paramName = myParam.ParameterName
memberFormData = e.Item.FindControl(paramName.Substring(1) & "_up")
'我是按书上原文写的,但上面这行语句运行时不对,值为NULL,导致运行下句时出错说'未将对象引用设置到对象的实例'。它的目的应是为了把编辑状态中的各文本框中的值赋给各变量名。正确的语句应该怎么写呢?上次有人说应写成memberFormData = e.Item[index].Controls[0],我试了也不行。请高手指点应怎么写这段代码?
upCommand.Parameters.Item(paramName).Value = memberFormData.Text
Next
upCommand.ExecuteReader()
memberdata.EditItemIndex = -1
BindMemberData()
End Sub
问题点数:20、回复次数:4Top
1 楼hbb0b0(bobo)回复于 2004-12-02 22:41:13 得分 0
当更新datagrid 时,
它中的cell中显示为textbox。可以用如下的方法获得:
((TextBox)e.item[i].Control[0]).Text 取得;
当Cell不显示为TextBox时,可以用e.Item.Cell[0].Text直接获得。
Top
2 楼huleeyar(虚拟过客)回复于 2004-12-02 22:44:07 得分 0
慢了一拍啊Top
3 楼jacklupig(jacklupig)回复于 2004-12-02 22:53:22 得分 0
datagrid.Cells[0].Text
这个是C#的,VB.net的不知道了Top
4 楼zhanggy1973(谷雨)回复于 2004-12-04 16:18:53 得分 20
memberFormData = e.Item.Cells(paramNumber + 2).Controls(0)Top
相关问题
- 求 支持XML 的文本框控件
- 关于超级文本框控件
- 如何削除一行文本框
- datagrid控件如何改变真正的背景颜色???不是指的文本框的颜色!
- 如何控制datagrid控件处于编辑模式下的文本框的宽度,在线等待
- 怎么设置DataGrid控件在点击“编辑”后出现的文本框的CSS样式??
- DataGrid控件中有几个模板列,每个模板列中有一个文本框控件,如果实现其中一个文本框获取焦点,让当前行的背景色变色.谢谢~
- Adodc控件和文本框绑定的控件的问题
- 在web控件datagrid里面怎么样才能对表格进行编辑。加入文本框textbox控件如何加入!
- DATAGRID中某一列有按钮,文本框,还有DROPDOWNLIST,当点按钮的时候要判断和该按钮在一行的DropDownList和文本框中的信息,如何写[有图]




