ddl未在服务器 - asp.net中更新

时间:2015-11-12 15:47:52

标签: javascript c# asp.net

我在ASP.NET c#上工作。我有一个DropDownList。 (RUNAT = “服务器”)

在$(document).ready上,我更新了它的值:

/usr/local/rbenv/shims
/usr/lcoal/rbenv/bin

当我回到服务器(c#)时,ddl中没有值:

$(document).ready(function () {
document.getElementById("ddl").value = "abc";
…

可能是什么问题?

谢谢,

YYY

2 个答案:

答案 0 :(得分:1)

至于你的dropdown runat =“server”它已经生成了ClientID,“ddl”它是服务器端id,在客户端你需要调用如下所示

document.getElementById("<%= ddl.ClientID %>").value = "abc";

答案 1 :(得分:1)

欢迎来到WebForms的精彩世界:在这个框架搞砸的东西列表中,你的runat =“server”元素的ID是 当引擎处理您的服务器标记时,它会根据您声明该特定元素的位置生成自己的ID。在您的浏览器devtools中查看它。

幸运的是,自 ASP.NET 4 以来,您可以指定特殊属性 ClientIDMode ,现在您可以像

那样执行此操作
<asp:TextBox ID="txt" runat="server" ClientIDMode="Static" />

将呈现为

<input id="txt" name="ctl00$MasterPageBody$ctl00$txt" />

如果由于某些原因无法使用ASP.NET 4,您可以坚持使用@Dan建议的旧解决方案:

document.getElementById("<%= ddl.ClientID %>")

但这不是推荐的方式。

修改

可能你应该ddl.SelectedItem.Value代替。