2012-04-15 5 views
1

Следующий код успешно работает без ошибок, но я до сих пор не получаю новые данные из сетки, добавляя точку прерывания и шаг за шагом данные в переменных являются исходными данными, а не обновленными данными, чего я не вижу?Событие RowUpdating VB.NET не работает

Private Sub grvSample_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles grvSample.RowUpdating 
    Dim row As GridViewRow = DirectCast(grvSample.Rows(e.RowIndex), GridViewRow) 
    Dim passportNumber As TextBox = DirectCast(row.FindControl("txtNumber"), TextBox) 
    Dim expiry As TextBox = DirectCast(row.FindControl("txtExpiry"), TextBox) 
    Dim type As TextBox = DirectCast(row.FindControl("txtType"), TextBox) 
    Dim name As TextBox = DirectCast(row.FindControl("txtName"), TextBox) 
    Dim cinvnum As TextBox = DirectCast(row.FindControl("txtCINVNUM"), TextBox) 
    Dim last As TextBox = DirectCast(row.FindControl("txtLast"), TextBox) 
    Dim drplist As DropDownList = DirectCast(row.FindControl("DDLNat"), DropDownList) 

    Dim Conn As New SqlConnection("Data Source=ADMIN-PC;Initial Catalog=T1INV;Integrated Security=True") 

    Dim cmd As New SqlCommand("update pass_details set passnat='" & drplist.SelectedValue & "', passno='" & passportNumber.Text.Trim() & "', passexp='" & expiry.Text.Trim() & "', passtype='" & type.Text.Trim() & "', nameonpass='" & name.Text.Trim() & "', namelast='" & last.Text.Trim & "' where cinvnum='" & cinvnum.Text.Trim() & "'", Conn) ' where cinvnum='" & grvSample.Rows(e.RowIndex) & "'") 

    Try 
     Conn.Open() 
     cmd.ExecuteNonQuery() 
     ' Refresh the data 
     grvSample.EditIndex = -1 
     Dim SSQL = "select * from pass_details" 
     Dim ds As New DataSet("GET_HIS") 
     Dim adp As New SqlDataAdapter(SSQL, Conn) 
     adp.Fill(ds, "TAB_SMT") 
     grvSample.DataSource = ds.Tables("TAB_SMT") 
     grvSample.DataBind() 
    Catch ee As SqlException 

    Finally 
     cmd.Dispose() 
     Conn.Close() 
     Conn.Dispose() 
    End Try 
End Sub 
+0

Вы привязываете GridView к postbakcs? Это заменит измененные значения. Кроме того, 'GridViewUpdateEventArgs' содержит словарь с новыми значениями. –

+0

Да Тим, ты прав, я не привязывал данные, если нет, это сообщение назад .. Спасибо :) – SDM78

ответ

1

Я предполагаю, что вы в GridView привязки данных также на постбэков. Это заменит измененные значения.

Так проверить это в Page_Load следующим образом:

If Not Page.IsPostBack Then 
    BindGrid() 
End If 

Помимо этого GridViewUpdateEventArgs содержит словарь с NewNalues.

Dim passportNumber = e.NewValues("passno") 

Обратите внимание, что они также переопределены в привязке данных.

+2

Спасибо большое Тим – SDM78

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