2011-01-04 5 views
1

私はVS 2010、.net 4、vb.netを使用しています。私はasp.netサイトを持っていて、ページには2つのドロップダウンリストがあります。私はこれらのいずれかをクリックすることができるページが最初にロードが、正常にアイテムやイベント火災を選択asp.netドロップダウンして間違ったイベントが発生する

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

。私が2番目の操作としてドロップダウンボックスのいずれかを選択すると、最初のドロップダウン、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 fireが発生します。だから、私はviewstateで何かする必要がありますか?私は他のページにrediredする前に?

+1

イベントをワイヤードアップするコードをドロップダウンに含めることはできますか。 – Phill

+0

何を意味するのですか*私はページを実行します.ispostback =ページがロードされたときにfalseをチェックしますか? 'Page.IsPostBack'では何をしていますか? 'not Page.IsPostBack'のときだけ、データソースをバインドする必要があります。ドロップダウンはカスケード接続されていますか?つまり、選択されているときに、他のドロップダウンのselectedindexに影響しますか?両方のSelectedIndexChangedEventで何をしていますか?これは答えよりも多くの質問ですが、正しい軌道に乗るのに役立ちます。 –

+0

おそらく、彼はおそらくイベントを配線するために 'Handles'を使ってVB.Netを使用していて、おそらくメソッドを貼り付けコピーしてメソッドの名前を変更し、コントロールの変更を忘れてしまったのです。 – Phill

答えて

0

非常に古いですが、この貧乏人の答えを見ている貧しい人々のために、あなたはリック・ストラホルの(同じく古い)投稿:West Wind: ASP.NET ListBoxes, SelectedValue and ViewStateのいくつかの救済を見つけるかもしれません。

スポイラーアラート:ちょっとハッキーで、あなたのビューステート管理のいくつかを行う必要があります。

関連する問題