javascript - 使用 javascript 修改 ASP.NET DropDownList 时出错

标签 javascript c# jquery asp.net

我正在使用 jquery 更改 ASP.NET DropDownList 中的项目,但是当我提交表单时,DropDownList 的 SelectedItem 属性为 null。知道如何使用 jquery 修改 DropDownList 中的项目列表而不在后面的代码中导致此错误吗?

这是我设置 DropDownList 的方法。最初,它是一个空的 ASP.NET DropDownList。

var mailType = $("#ContentPlaceHolder1_ddlMailType");

mailType.empty();
mailType.append("<option></option>");
mailType.append("<option value='D'>Direct Mail</option>");
.
.
.

DropDownList 在 jquery 执行后最终显示添加的项目。

最佳答案

抱歉,您无法使用 jquery 或 Javascript 将项目添加到服务器端 ASP.NET Web 表单列表控件。列表控件的内容存储在 ViewState 中,除非您做了一些非常奇怪的事情,否则您的 jquery 不会更新 ViewState。如果启用了验证,如果表单发布标记/值与 ViewState 中存储的任何已知值都不匹配,则 ASP.NET 将引发错误。

如果您希望列表框包含在客户端动态添加的项目,请不要使用服务器端控件。只需直接将 HTML 键入 ASP Web 表单(不要使用 runat=server 标记)。要在回发时读取控件的内容,请不要引用该控件;相反,使用 HttpContext.Request.Form["tag name"]。 请注意,后面的代码无法知道 jquery 添加到列表框中的内容,因为当浏览器发布表单时不会传递此信息 - 仅传递所选项目的 value 属性。

有关更多相关信息,请参阅我的其他答案之一 here .

关于javascript - 使用 javascript 修改 ASP.NET DropDownList 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29995880/

相关文章:

Jquery setInterval() 不起作用

javascript - 当 HTML 元素滚动到 View 中时是否会触发 Javascript 事件?

javascript - 如何将一个对象数组的属性获取到另一个对象数组

c# - Asp.Net Mvc POST 方法不发送字符串

javascript - Observable.switchMap 不起作用并且没有任何错误

c# - 如何通过正则表达式检查和提取字符串?

c# - 在上下文中找不到某些词,缺少引用,大脑即将爆炸?

javascript - 如何在单击时选择特定类

javascript - jsplumb 创建弯曲连接

javascript - jQuery 的 .live ('click' , fn) 和 .click(fn) 之间的性能差异