用 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 数据绑定下拉列表的值的主要内容,如果未能解决你的问题,请参考以下文章
如何将json返回的数据绑定到asp.net中的jquery gridview?
如何将json返回的数据绑定到asp.net中的jquery gridview?
使用 ASP.NET MVC 数据绑定视图模型显示 JQuery 对话框的最佳方式