这是一个奇怪的。我有一个非常简单的页面,其中包含一些标签和一个Dropdown List控件。该控件是ASP:控件。当用户单击列表中的某个项目时,所选的值根本不会传递回服务器。我尝试了一切。 Enableviewstate
,AutoPostBack
(将索引设置为0),UpdatePanel
和OnSelectedIndexChanged
事件(从不触发)。
我知道这种控制应该如何工作。虽然不是任何一个ASP.NET专家,但我已经很好地处理了这一切。我从来没有见过没有触发过它的事件或将新值发回服务器的控件。
控件不是数据绑定。相反,它是在foreach
:
myControl.Items.Add(new ListItem(etc, etc, etc));
控制标记
<asp:DropDownList CssClass="labelDisp"
ID="accountInfoList"
runat="server"
EnableViewState="true"
autopostback="true"
OnSelectedIndexChanged="accountInfoList_SelectedIndexChanged" >
</asp:DropDownList>
控制代码隐藏
if (lstAccounts != null && !Page.IsPostBack) {
AccountInfo acctInfo = lstAccounts[0];
PopulateFormData(lstAccounts);
}
答案 0 :(得分:1)
我找到了答案:
它与.Value有关。如果有多个.Ialue相同的ListItem,则只选择第一个。由于.Value没有从最初的SelectedIndex改变,所以没有回发。
我碰巧记得这是因为有人在几个月前就已经提到了这件事。当然,也没有例外。
当我在某个时候提出另一个问题时,我会尝试以正确的格式提供所有信息。感谢那些回复的人。