gpt4 book ai didi

javascript - 使用 javascript 填充 asp.net 控件无法在服务器端读取

转载 作者:行者123 更新时间:2023-12-02 19:05:19 26 4
gpt4 key购买 nike

我有一个使用 JavaScript 填充的 ASP.Net 下拉列表,如下所示:

下拉列表:

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

用“文本”填充下拉列表的 JavaScript 代码是:

var select = document.getElementById('<%= Ddl.ClientID %>');
var option = document.createElement("option");
option.value = '1';
option.innerHTML = "Text";
select.appendChild(option);

它在客户端填充得很好。我添加了一个应该在服务器端运行的按钮。在服务器端,当我尝试检索 ddl 选择的值时;它给出了一个异常(对象引用未设置为对象的实例。)

据我所知,一旦表单发送到服务器,ASP.Net ddl 控件就会丢失内容?我将如何解决这个问题?我尝试将值放入隐藏字段并尝试使用 Request.Form["HiddenField"].toString(); 但它给出了相同的错误。有什么帮助吗?

最佳答案

正如您所说,您无法在客户端填充下拉列表并使服务器端知道 ListItem 对象在那里。这是因为它们不会被发送回服务器:只有选定的值才会发送回服务器。

即使不使用 DropDownList,您的运气可能会更好。将下拉列表创建为 HTML select 标记。请务必设置 name 属性(否则回发时不会获取该属性)。然后使用 Request.Form 集合访问 HTML select 的选定值。

根据您告诉我们的内容,我能想到的使用 DropDownList 的唯一原因是,如果您打算在某个时候将其绑定(bind)在服务器端,从服务器 -端数据,或者如果您想根据服务器端计算更改其外观,但不想设置 Ajax 调用。如果您不想执行这些操作,select 可能会更好。

关于javascript - 使用 javascript 填充 asp.net 控件无法在服务器端读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14359166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com