0

是否可以通过 javascript 添加下拉项目,然后在服务器端获取它?

我有

<asp:DropDownList ID="testDropDown" CssClass="listClass" runat="server"/>
<asp:Button ID="saveButton" runat="server" Text="Добавить" OnClick="saveButtonClick" />

页面加载后javascript添加项目下拉

$('.listClass').append("<option value='value1'>Text1</option>");

但是在点击保存按钮后,我在服务器上有空的下拉菜单

4

2 回答 2

0

您不能在 ASP.NET 中执行此操作,因为这些值是使用服务器端的 ViewState 构造的。

检查这个。它可能对您有帮助:通过 javascript 添加到 <select> 的选项在回发中丢失

于 2013-11-14T12:34:55.057 回答
0

客户端发生的任何动态更改都不会自动复制到服务器端。

您需要记录动作以某种方式发生的事实(例如使用<asp:HiddenField>控件)......然后在回发时,检查动作是否发生并复制在客户端上发生的值。

另外,要小心,因为 ASP.NET 可能会抛出异常,因为控件返回的值是 ASP.NET 最初没有填充控件的值。为了解决这个问题,要么EnableEventValidation="false"在你的<@Page>声明中设置,要么使用添加所有可能的值Page.ClientScript.RegisterForEventValidation

于 2013-11-14T12:33:01.323 回答