0

asp.netにリストボックスがあります

 <asp:ListBox ID="ListBox1" class="listItem" runat="server" 
 onselectedindexchanged="ListBox1_SelectedIndexChanged">
 <asp:ListItem>1</asp:ListItem>
 <asp:ListItem>2</asp:ListItem>
 <asp:ListItem>3</asp:ListItem>
 </asp:ListBox>

誰かが関数の値を変更したときに関数をトリガーしたい...私が試したコードは

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    Label6.Text = Label6.Text + "hello";
}

ここで何が問題になっていますか。

オートポストバックをtrueに設定すると、問題は解決しますが、オートポストバック(ページ上の画像のbcoz)ごとに大量のデータがリロードされるため、値を変更するたびにページがリロードされます。次のコードを入力してもページ読み込み中

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
        }
    }

しかし、うまくいきませんでした...

4

2 に答える 2

2

ここでの問題は、SelectedIndexChangedイベントがすぐにトリガーされることを期待していることです。しかし、デフォルトではListControlAutoPostBackプロパティは に設定されていfalseます。

trueユーザーがリストの選択を変更するたびに、サーバーへのポストバックが自動的に発生する場合。それ以外の場合は、false. デフォルトは falseです。

したがって、それを true に設定します。

<asp:ListBox ID="ListBox1" AutoPostBack="true" class="listItem" runat="server" 
 onselectedindexchanged="ListBox1_SelectedIndexChanged">
 <asp:ListItem>1</asp:ListItem>
 <asp:ListItem>2</asp:ListItem>
 <asp:ListItem>3</asp:ListItem>
 </asp:ListBox>
于 2012-11-19T10:42:21.690 に答える
1

AutoPostBack="true"それを追加しますListBox1

于 2012-11-19T10:43:12.327 に答える