3

選択したアイテムが変更されたときに、UpdatePanelを介してDropDownListをAutoPostBackに取得しようとしています。なぜこれが機能しないのかについて、私は少しかき混ぜるつもりです。

誰かが簡単なアイデアを持っていますか?

ASPXページ:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true" >      
  <ContentTemplate>
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"  onselectedindexchanged="DropDownList1_SelectedIndexChanged">
      <asp:ListItem>item 1</asp:ListItem>
      <asp:ListItem>item 2</asp:ListItem>
    </asp:DropDownList>
  </ContentTemplate>
</asp:UpdatePanel>

コードビハインド(ポストバックをキャプチャするために文字列の割り当てにブレークポイントを設定しました):

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
  string s = "";
} 

編集:

OK、今は動作しています。とても奇妙です。VisualStudioを再起動するだけで済みました。これは、開発者として私を怖がらせるようなものです;)VSが実行中のアセンブリに対して「同期がとれていない」場合、以前にも同様のことが見られたと思います。

参考までに、VS 2008 WebDeveloperExpressを実行しています。

答えてくれた人たちに感謝します。

4

4 に答える 4

5

投稿いただいた内容で動作させることができました。これは私が使用したコードです...基本的にはあなたが持っていたものですが、例外をスローしています。

   <asp:ScriptManager ID="smMain" runat="server" />

    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true" >      
      <ContentTemplate>
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"  onselectedindexchanged="DropDownList1_SelectedIndexChanged">
          <asp:ListItem>item 1</asp:ListItem>
          <asp:ListItem>item 2</asp:ListItem>
        </asp:DropDownList>
      </ContentTemplate>
    </asp:UpdatePanel>



    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }

何かおかしいのではないかと色々と試してみたのですが、毎回例外がスローされました。

例外ルートを試して、ポストバックが発生しており、これがデバッガーの問題ではないかどうかを確認することをお勧めします。

  • 1 つの問題は、Vista にあり、管理者として Visual Studio を実行していない可能性があります。デバッグを許可しない傾向があることは知っています。

  • 実行しているアセンブリがコードと一致しない可能性がありますか? これは、「ブラウザで表示」してからデバッガをアタッチすると発生することがあります。

于 2008-12-04T16:09:06.600 に答える
1

UpdatePanel の EnableViewState="true" は、問題を確実に解決します。

于 2013-11-30T21:50:17.823 に答える
0

私も同じ問題を抱えていました。不思議なことに、更新パネルは FireFox で OnTextChanged を起動していましたが、IE では機能しませんでした。VS 2005 を再起動すると、問題が修正されました。:O

于 2009-04-20T07:25:03.860 に答える
-1

AutoPostBack="true" を使用する代わりに、更新パネルで DropList をトリガーとして設定します。

于 2009-07-17T00:27:31.987 に答える