【问题标题】:Get cell value from specified column in a Gridview upon "RowUpdating" Event ASP.NET/VB在“RowUpdating”事件 ASP.NET/VB 时从 Gridview 中的指定列获取单元格值
【发布时间】:2013-02-20 22:29:49
【问题描述】:

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

那么,您能否提供一个代码 sn-p/简要说明,说明当我更新 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

【问题讨论】:

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


    【解决方案1】:

    你有几个选择:

    如果ID_ControlCharts 列在记录中,您不能从 e.OldValues 中获取它吗?

    Dim IDfromcontrol = e.OldValues("ID_ControlCharts")
    

    如果您将ID_ControlCharts 设置为DataKeyNames 属性的列,那么您应该能够使用ItemIndex 获取它:

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

    (这都是凭记忆,所以语法可能有点不对。)

    【讨论】:

    • 发现了问题,单元格设置为只读,并且 e.oldvalues 什么也不返回,但是当我删除只读选项时,e.olvalues 起作用了!谢谢!
    • 好!顺便说一句,您将e 与字符串“Control_SeqRef_CH”进行比较的第一行总是返回false:e 绝不是字符串!你想在那里测试什么?
    • 实际上我修改了代码以获取旧值(不进行比较)...谢谢您的提醒! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多