【发布时间】:2016-04-16 10:35:25
【问题描述】:
编辑:这是DropDownList.Items.Clear(); 在我从 db 中列出一些东西的方法中,导致了问题。但是,我不明白为什么这会导致问题。如果我能给出解释,我将不胜感激,因为我真的需要使用 Items.Clear();不知何故
我得到了 3 个DropDownList,根据我在这 3 个DropDownList 之一中选择的值更新特定标签。每个DropDownList 都可以正常工作,直到我选择下一个,而在它之前的其他其他都不会通过 UpdatePanel 触发。
例如第一个有效,但一旦我使用第二个就停止工作(标签不会更新)。
第二个有效,但一旦使用第三个DropDownList,第二个也不会工作,只有第三个DropDownList 可以正常工作。
如果我立即使用第三个也是如此,第一个和第二个 DropDownList 无法通过 UpdatePanel 工作。
换句话说,一旦使用了最新的DropDownList,每个DropDownList 之前都不会通过UpdatePanel 触发。
aspx:
<asp:DropDownList ID="dpl1" runat="server" OnSelectedIndexChanged="dpl1_OnSelectedIndexChanged" AutoPostBack="True" />
<asp:DropDownList ID="dpl2" runat="server" OnSelectedIndexChanged="dpl2_OnSelectedIndexChanged" AutoPostBack="True" />
<asp:DropDownList ID="dpl3" runat="server" OnSelectedIndexChanged="dpl3_OnSelectedIndexChanged" AutoPostBack="True" />
<asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Conditional" >
<ContentTemplate>
<asp:Label ID="lblDPB" runat="server"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="dpl1" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="dpl2" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="dpl3" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
背后的代码:
protected void dpl1_OnSelectedIndexChanged(object sender, EventArgs e) {
lblDPB.Text = "#1: ";
}
protected void dpl2_OnSelectedIndexChanged(object sender, EventArgs e) {
lblDPB.Text = "#2: ";
}
protected void dpl3_OnSelectedIndexChanged(object sender, EventArgs e)
{
lblDPB.Text = "#3: ";
}
我怎样才能使所有这 3 个工作同时进行?
谢谢
【问题讨论】:
-
我无法重现该问题。当我以任何顺序从其中任何一个中进行选择时,我都会看到正确的列表编号。我在
Page_Load中填写列表(我不知道您的列表是如何填写的)。这是更复杂表格的一小部分吗?如果是这样,您可以在一个小型测试项目中测试该部分。顺便问一下,如果您在两次操作之间等待 5 秒,是否会出现问题? -
@ConnorsFan 嗯,很奇怪。当我在 Page_Load 中简单地列出一些东西时,它也对我有用。在我的代码中,我通过一种方法将 db 中的一些值添加到下拉列表,在 Page_Load 中使用了 this.PreRender += MethodName。在这里添加的代码太多了,但是我的代码可能会出现什么错误?我只是连接到 db(使用 OleDb),将内容添加到每个 DropDownList 中,然后关闭该“MethodName”中的连接。顺便说一句,我等了超过 5 秒,还是同样的问题。
-
编辑:好的,我发现了问题,在“MethodName”的开头,我为每个 DropDownList 得到了 Items.Clear,为什么会导致这个问题?
标签: c# asp.net updatepanel