9

我在 UpdatePanel_2 中有一个下拉列表,当在 UpdatePanel_1 中单击 Button_1 时会填充它。

我的 ddlist 标记是,

<asp:DropDownList id="drop1" runat="server"  EnableViewState="true" AutoPostBack="true" OnSelectedIndexChanged="Drop1_SelectedIndexChanged" />

然后后面的代码是,

 protected void Drop1_SelectedIndexChanged(object sender, EventArgs e)
        { }

我还尝试将 AutoPostback=true 放入我的 DropDownList,但仍然没有成功。

我还添加了触发来更新面板 2,但没有任何收获,

       <Triggers>
    <asp:AsyncPostbackTrigger ControlID="drop1" EventName="SelectedIndexChanged" />
</Triggers>

我正在使用一个按钮填充 DropDownList,而不是 PAGE LOAD METHOD 请在回答之前阅读。谢谢

4

5 回答 5

12

DropDownList检查数据以填充Page_Load事件并始终检查IspostBack

if(!IsPostBack)
{
 //DropDownList configuration
}

使用EnableViewState

 <asp:DropDownList ID="ddlAddDepPlans" runat="server" AutoPostBack="true" EnableViewState="true" />

希望它可以帮助你。

于 2013-05-08T11:36:32.357 回答
9

我遇到过同样的问题。我的问题是我的 ListItems 的值都是一样的:D

<asp:DropDownList ID="ddlFilterLogins" runat="server" Visible="true" AutoPostBack="true">
    <asp:ListItem Value="0" Text="All"></asp:ListItem>
    <asp:ListItem Value="0" Text="Some"></asp:ListItem>
    <asp:ListItem Value="0" Text="Some more"></asp:ListItem>
</asp:DropDownList>

它应该是这样的:

<asp:DropDownList ID="ddlFilterLogins" runat="server" Visible="true" AutoPostBack="true">
    <asp:ListItem Value="0" Text="All"></asp:ListItem>
    <asp:ListItem Value="1" Text="Some"></asp:ListItem>
    <asp:ListItem Value="2" Text="Some more"></asp:ListItem>
</asp:DropDownList>

希望这可以帮助。这有时可能很难找到:)

于 2013-10-31T15:42:16.660 回答
0

请,当您在 Page_Load() 中初始化它时,请检查是否不是回发。如果您不这样做,您将始终设置默认值,这将替换事件中设置的值。

if(!IsPostBack)
{
//DropDownList configuration
}
于 2013-05-08T11:16:55.197 回答
0

您可以使用 Init 事件而不是 SelectIndexChanged。它对我来说很好。希望你明白我的意思。

于 2014-03-10T09:21:46.413 回答
0

这对我来说也是一个有线问题。最后是因为下拉列表中的列表项相同,如下所示。在开发过程中,您可以使用相同的项目来进行测试。改变它们。

<asp:ListItem>Business</asp:ListItem>
<asp:ListItem>Business</asp:ListItem>
<asp:ListItem>Business</asp:ListItem>
<asp:ListItem>Business</asp:ListItem>
于 2017-07-14T16:03:51.617 回答