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";
}

这里有什么问题。。

通过将自动回发设置为真,我的问题得到了解决,但是每次我更改其值时都会重新加载页面,因为每次自动回发(页面上的图像数量)都会重新加载大量数据。即使我输入了以下代码在页面加载中

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

但它没有成功...

4

2 回答 2

2

这里的问题是您希望SelectedIndexChanged事件立即触发。但默认情况下ListControl'AutoPostBack属性设置为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 回答