用 jQuery 设置 ASP.NET 数据绑定下拉列表的值

Posted

技术标签:

【中文标题】用 jQuery 设置 ASP.NET 数据绑定下拉列表的值【英文标题】:ASP.NET databound dropodownlist set value with jQuery 【发布时间】:2015-09-22 09:06:25 【问题描述】:

我正在尝试通过 jQuery 选择 FormView 的 DropDownList 的值。 我使用的代码不起作用,但我不明白为什么:

$("input[id$='_ddlwidget']").val(_data[0]);

调试它显示该行执行没有问题,但 DropDownList 项没有改变。

DropDownList 是这样定义的:

<asp:FormView
   ID="_fvData"
   runat="server"
   DataKeyNames="id"
   DataSourceID="_sdsTable2"
   DefaultMode="Insert" Width="100%">
   <InsertItemTemplate>
    <asp:DropDownList ID="_ddlwidget" runat="server" DataSourceID="_sdsTable1"
        DataTextField="text_field1" DataValueField="text_field2"
        AppendDataBoundItems="true" SelectedValue='<%#Bind("_field2")%>'>
   </InsertItemTemplate>
</asp:FormView

【问题讨论】:

你检查过身份证吗?除非您更改它,否则 asp.net 会自动生成 id,它们不会在呈现的标记中匹配。您可以使用 来获取要在 aspx 页面中引用的 ID,或者使用 ClientIDMode=static 将服务器端标记设置为静态 Eric ... 上面编写的 javascript 代码适用于 asp.net “生成”的所有字段。事实上,如果我调试 javascript 代码,我不会出错,也不会出现异常。如果我拼错了 id,则从 JQuery 选择返回的对象应该是 null,因此调用 .val() 将导致异常。 它也应该为空,因为下拉列表不是“输入”,而是“选择”。所以你必须有另一个名为 _ddlwidget 的输入元素。 你好@Eric ...这将是一个大谜团...现在johnnyRose提供的代码正在运行。关于$("input[id$='_ddlwidget']") 返回的值,我可以证明它没有返回null 值.. 否则我的代码中的所有_ddl* 项目都是DropDownList ...正如您所建议的那样,问题可能是id ... 【参考方案1】:

假设 data[0] 是该 DropDownList 的有效选项,只需使用普通的 jQuery id selector:

$('#_ddlwidget').val(_data[0]);

应该没问题。

【讨论】:

thnx 但这不起作用(我检查过).. 但可能我用我的代码愚弄了你现在请看一下 asp.net 代码,我认为它现在更清洁了..跨度> 你试过了吗?这是在 jQuery 中设置值的一种非常标准的方法。 是的,我试过了...我会尝试通过 IE 调试它,但到目前为止,我可以证明它没有按预期工作,值没有改变(因为它不是我的代码) . 你能发布你的整个视图吗?包括所有的 JavaScript? 整个代码对于这个来说有点太大了。你需要知道什么?

以上是关于用 jQuery 设置 ASP.NET 数据绑定下拉列表的值的主要内容,如果未能解决你的问题,请参考以下文章

紧急求助,ASP.NET 中GridView数据绑定问题?

如何将json返回的数据绑定到asp.net中的jquery gridview?

如何将json返回的数据绑定到asp.net中的jquery gridview?

使用 ASP.NET MVC 数据绑定视图模型显示 JQuery 对话框的最佳方式

ASP.NET MVC 主视图引用的js(jquery)在分部视图中无效,如何解决?

ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据