asp.net выпадает выпадает неверное событие - PullRequest
1 голос
/ 04 января 2011

Я использую VS 2010, .net 4, vb.net. У меня есть сайт asp.net и на странице есть 2 выпадающих списка.

  <asp:DropDownList ID="ddlClassIndex" runat="server" AutoPostBack="true" />
    <asp:DropDownList ID="ddlClassQBankList" runat="server" AutoPostBack="true" />

Когда страница загружается в первый раз, я могу нажать на любой из них, выбрать элемент, и событие запускается правильно. Когда я выбираю любой из выпадающих списков в качестве второй операции, срабатывает первый выпадающий список ddlClassIndex.SelectedIndexChanged. Что я сделал неправильно, что это будет происходить? Я проверяю page.ispostback=false, когда страница загружается, и мы также используем главные страницы.

Есть идеи?

точно ..

 Private Sub LoadClass()
    Dim Os As List(Of Dempsey.OldeTestClassIndex) = Nothing
    Dim Oc As New Dempsey.OldeTestClassIndex_Controller
    Os = Oc._GetClassIndexData(0)

    Dim X = From w In Os
            Where w.Active = 3
            Select w

    Os = X.ToList

    With Me.ddlClassIndex
        .DataSource = Os.OrderBy(Function(o) o.ClassTitle)
        .DataTextField = "ClassTitle"
        .DataValueField = "tblClassIndexID"
        .DataBind()
        .Items.Insert(0, New ListItem("Choose Class Title", "0"))
        .SelectedIndex = 0
    End With


End Sub



Protected Sub ddlClassIndex_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlClassIndex.SelectedIndexChanged
    If Me.ddlClassIndex.SelectedIndex > 0 Then
        If ClassHasCategories(Me.ddlClassIndex) = True Then
            Response.Redirect("AddEditQBank.aspx?ClassIndexID=" & Me.ddlClassIndex.SelectedItem.Value)
        Else
            Me.lblStatus.Text = "No Categories"
            Me.lblStatus.Visible = True
        End If

    End If
End Sub

Private Sub LoadClassQBankList()
    Dim ary As New ArrayList
    ary.Add(1)
    ary.Add(2)
    ary.Add(3)

    Dim Os As List(Of Dempsey.OldeTestClassIndex) = Nothing
    Dim Oc As New Dempsey.OldeTestClassIndex_Controller
    Os = Oc._GetClassIndexData(0)

    Dim X = From w In Os Join l In ary On w.Active Equals l
            Where w.KT = 1 And w.RandomTest = 1
                    Select w

    Os = X.ToList

    With Me.ddlClassQBankList
        .DataSource = Os.OrderBy(Function(o) o.ClassTitle)
        .DataTextField = "ClassTitle"
        .DataValueField = "tblClassIndexID"
        .DataBind()
        .Items.Insert(0, New ListItem("Choose Class Title", "0"))
        .SelectedIndex = 0
    End With

End Sub
Protected Sub ddlClassQBankList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlClassQBankList.SelectedIndexChanged
    If Me.ddlClassQBankList.SelectedIndex > 0 Then
        Response.Redirect("ClassQBankList.aspx" & "?ClassIndexID=" & Me.ddlClassQBankList.SelectedValue)
    End If
End Sub

~~~~~~~~~~ Больше информации Я проверяю для постбэка. Когда я выбираю из выпадающего списка, он перенаправляет на другую страницу. Когда я нажимаю кнопку «Назад» и выбираю другое значение в другом выпадающем меню, оба параметра SelectedIndexChanged срабатывают. Так что мне нужно сделать что-то с viewstate? прежде чем я переадресовал на другую страницу?

1 Ответ

0 голосов
/ 18 июля 2016

Очень старый, но для бедных душ, которые все еще видят этот неаккуратный ответ, вы можете найти некоторое облегчение в посте Рика Строля (столь же старого): Западный ветер: списки ASP.NET, SelectedValue и ViewState .

Оповещение о спойлере: оно немного хакерское и включает в себя некоторые из ваших собственных методов управления состоянием вида.

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