在“RowUpdating”事件ASP.NET / VB上从Gridview中的指定列获取单元格值

时间:2013-02-20 22:29:50

标签: asp.net vb.net visual-studio-2010 gridview

我想要做的是跟随...我有一个gridview从SQL服务器加载数据,我有e.NewValue和e.oldValue来确定哪些数据被修改/更新但我需要获取存储在“ID_ControlCharts”列

中的唯一记录ID

那么,你能否提供一个代码片段/简要说明,当我更新1个单元格(e.new/old)时,如何从gridview已填充的“ID_controlCharts”中获取值?

注意:索引不是我需要的,因为可以删除该行并且该行的引用现在已丢失,因此“ID_controlCharts”由SQL服务器密钥自动填充,因此非常适合我的情况。

代码隐藏

    If e.Equals("Control_SeqRef_CH") = False Then
        Dim oldvalue As String = e.OldValues("Control_SeqRef_CH")
        Dim newvalue As String = e.NewValues("Control_SeqRef_CH")
        Dim rowindex As Integer = e.RowIndex
        Dim IDfromcontrol as integer = ???

        MsgBox(oldvalue)
        MsgBox(newvalue)
        MsgBox(rowindex)
        Msgbox(IDfromcontrol)

    Else
        MsgBox("same")
    End If

1 个答案:

答案 0 :(得分:0)

您有几个选择:

如果ID_ControlCharts列在记录中,您是否无法从e.OldValues中获取它?

Dim IDfromcontrol = e.OldValues("ID_ControlCharts")

如果失败,如果您将ID_ControlCharts设置为DataKeyNames属性的列,则应该可以使用ItemIndex获取它:

Dim IDfromcontrol = GridView1.DataKeys(e.ItemIndex).Values(0)

(这完全来自内存,因此语法可能稍微偏离。)