2013-02-20 2 views
0

Что я хочу сделать, это следовать следующим ... У меня есть gridview, который загружает данные с SQL-сервера, у меня есть e .NewValue и e.oldValue, чтобы определить, какие данные были изменены/обновлены, но мне нужно получить уникальный идентификатор записи, который хранится в столбце «ID_ControlCharts»Получить значение ячейки из указанного столбца в Gridview при событии «RowUpdating» ASP.NET/VB

Итак, можете ли вы предоставить фрагмент кода/краткое описание того, как получить значение из «ID_controlCharts», уже заполненное gridview, когда я обновил 1 ячейку (e.new/old) ???

Примечание: индекс не является тем, что мне нужно, так как строка может быть удалена, а ссылка на эту строку теперь потеряна, поэтому, поскольку «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 

ответ

0

У вас есть несколько вариантов:

ID_ControlCharts Если столбец в записи, не может принести вам это из e.OldValues?

Dim IDfromcontrol = e.OldValues("ID_ControlCharts") 

В противном случае, если вы установите ID_ControlCharts в качестве колонки для DataKeyNames собственности, вы должны быть в состоянии извлечь его с помощью ItemIndex:

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

(Это все из памяти, поэтому синтаксис может быть немного выключен.)

+0

нашел проблему, ячейка была установлена ​​как только для чтения, а e.oldvalues ​​ничего не возвращает, но когда я удалил только параметр чтения, работа e.olvalues ​​работала! Спасибо! –

+0

Хорошо! Кстати, ваша первая строка, в которой вы сравниваете 'e' с строкой« Control_SeqRef_CH », всегда возвращает false:' e' никогда не является строкой! Что вы там пытались проверить? –

+0

На самом деле я изменил код на jsut, захватив старое значение (без сравнения) ... спасибо за головы! :) –

Смежные вопросы