1

我有一个带有四个模板字段的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 
4

2 回答 2

0

尝试删除此检查(如果您在 rowupdating 事件中从模板控件中获取值):

If Not IsPostBack Then

End If 
于 2012-06-01T13:55:14.010 回答
0

我不会从 GridView 行中提取控件,而是使用GridViewUpdateEventArgs您可以访问的变量。您可以从属性中提取值NewValues(您可能还需要其他有用的属性 - 例如OldValuesRowIndex)。

您可以像这样访问它们:

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”字典以找到确切的键。如果您有任何问题,请告诉我。

于 2012-06-01T16:26:17.457 回答