Как заставить флажки работать в ASP.NET - PullRequest
0 голосов
/ 01 мая 2009

Я работаю со старым веб-приложением, разработанным в среде 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, похоже, он просто пропускает запрос.

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

Ответы [ 3 ]

1 голос
/ 01 мая 2009

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

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

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

Catch ex As Exception

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

.

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

0 голосов
/ 01 мая 2009

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

чек или чек

-

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

0 голосов
/ 01 мая 2009

Убедитесь, что вы ввели теги Runat = "server" и AutoPostBack = "True"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...