Вопрос

Я работаю со старым веб-приложением, разработанным в рамках платформы VB.NET 1.1.У меня возникла проблема с флажками.

У меня есть следующий код для моего флажка:

<asp:TemplateColumn HeaderText="Reviewed">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemTemplate>
<asp:checkbox ID="chkAppRev" Runat="server" 
    OnCheckedChanged="onCheckChange" AutoPostBack="True" />  
</ItemTemplate>
</asp:TemplateColumn>

и это для моего OnCheckChanged событие:

Public Sub onCheckChange(ByVal sender As Object, ByVal e As EventArgs)
    Dim strSQL As String = String.Empty
    Dim inbox As CheckBox = CType(sender, CheckBox)
    Dim dgItem As DataGridItem = CType(inbox.NamingContainer, DataGridItem)
    Dim conn As OleDb.OleDbConnection = New OleDb.OleDbConnection(ConfigurationSettings.AppSettings("CONNECTIONSTRING"))
    Try
        '--update checkbox field on record in database
        conn.Open()
        If inbox.Checked = True Then
            strSQL = "Update AppUserJobs Set AppChecked=1 " & _
            "Where AppUserId=" & Convert.ToInt32(dgItem.Cells(9).Text) & 
 " and JobId=" & Convert.ToInt32(dgItem.Cells(10).Text)



        Else
            strSQL = "Update AppUser Set AppChecked=0 " & _
            "Where AppUserId=" & Convert.ToInt32(dgItem.Cells(9).Text) & 
" and JobId=" & Convert.ToInt32(dgItem.Cells(10).Text)
        End If

        Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strSQL, conn)
        Dim intRec As Integer = cmd.ExecuteNonQuery()
        conn.Close()
    Catch ex As Exception
    Finally
        If (conn.State = ConnectionState.Open) Then
            conn.Close()
        End If
    End Try
    BindData()
End Sub

Все это работает нормально, пока я не добавлю еще один флажок в asp-код и еще один oncheckchanged метод, похоже, просто пропускает запрос.

У кого-нибудь есть какие-нибудь идеи, что я пропустил?

Это было полезно?

Решение

У вас есть БОЛЬШОЕ "НЕТ-НЕТ" в коде:он молча собирает исключение и выбрасывает его.

Где-то в методе есть какое-то исключение, но поскольку вы выбрасываете всю информацию о нем, нет никакого намека на то, что именно идет не так.Вероятно, некоторые ссылки имеют значение null, но без какой-либо информации, указывающей вам, какая именно, трудно определить проблему.

Удалите эту строку, чтобы исключение не было скрыто без предупреждения:

Catch ex As Exception

В качестве альтернативы поместите после него какой-нибудь код, который фактически обрабатывает исключение.В этом случае вам следует изменить строку так, чтобы вы не перехватывали базовый класс Exception но какой-то более конкретный класс исключений, например SqlException.

Имея некоторую информацию о том, где возникает исключение, можно определить проблему.

Другие советы

Вы убедились, что ввели теги Runat="сервер" и AutoPostBack="Истина"?

Просто чтобы быть уверенным, есть ли опечатка в вашем коде только в вопросе?

oncheckchanged изменен или oncheckchange - проверка обмена

--

Также, что вы подразумеваете под "Я добавляю еще один флажок в asp-код и еще один метод oncheckchanged"?Вы действительно создаете другой обработчик?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top