我有一个包含四个模板字段的gridview,我需要能够将信息保存到数据库中。当我点击编辑按钮并且我的列变为编辑模式时,我可以输入信息就好......但是当我尝试循环控制以获取信息时它不会选择任何东西?
Private Sub gvOLIAdj_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvOLIAdjst.RowEditing
gvOLIAdjst.EditIndex = e.NewEditIndex
BindData()
End Sub
这是我到目前为止的更新事件......任何想法?我不是这样做的吗?
Private Sub gvOLIAdj_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gvOLIAdjst.RowUpdating
Dim dts As DataTable = DirectCast(Session("BudgetsTable"), DataTable)
Dim row As GridViewRow = gvOLIAdjst.Rows(e.RowIndex)
If DirectCast(row.FindControl("txtItemTempTtlAmt"), TextBox).Text = "" Then
lblError.Text = "Invalid Entry. Correct and try again"
e.Cancel = True
Else
lblError.Text = ""
dts.Rows(row.DataItemIndex)("Approval Date") = DirectCast(row.FindControl("txtItemTempApprDt"), TextBox).Text
dts.Rows(row.DataItemIndex)("Total Amount") = DirectCast(row.FindControl("txtItemTempTtlAmt"), TextBox).Text
dts.Rows(row.DataItemIndex)("Comments") = DirectCast(row.FindControl("txtItemTempCmmt"), TextBox).Text
dts.Rows(row.DataItemIndex)("Initials") = DirectCast(row.FindControl("lblItemTempInit"), Label).Text
gvOLIAdjst.EditIndex = -1
BindData()
End If
If Not IsPostBack Then
result = dal.dbConnect(sqlconnection, ConfigurationManager.AppSettings("SQLServerConnection"))
If result = "Successful" Then
dt = ExecuteInsertUpdateDeleteStoredProc(sqlconnection, "@amt", txtItemTempApprDt.text)
dbClose
End If
End If
End Sub
答案 0 :(得分:0)
尝试删除此检查(如果您在rowupdating事件中从模板控件获取值):
If Not IsPostBack Then
End If
答案 1 :(得分:0)
我不会从GridView行中提取控件,而是使用您可以访问的GridViewUpdateEventArgs
变量。您可以从NewValues
属性中提取值(您可能还需要其他有用的属性 - 例如OldValues
和RowIndex
)。
您可以像这样访问它们:
e.NewValues("Data Field Name").ToString()
“数据字段名称”是该值的关键字(GridView
数据集中字段的名称)。
这样的事情应该有效
dts.Rows(row.DataItemIndex)("Approval Date") = e.NewValues("Approval Date").ToString()
dts.Rows(row.DataItemIndex)("Total Amount") = e.NewValues("Total Amount").ToString()
dts.Rows(row.DataItemIndex)("Comments") = e.NewValues("Comments").ToString()
dts.Rows(row.DataItemIndex)("Initials") = e.NewValues("Initials").ToString()
我在那里显示的键可能不完全正确,因为我无法看到你的GridView绑定数据如何。我相信你可以设置断点并检查“NewValues”字典以找到确切的键。如果您有任何问题,请告诉我。