我正在尝试使用jquery设置下拉列表的值。 我从网站上尝试了一些解决方案,但它们都不适用于我的解决方案。 这就是我所拥有的:
$(document).on("click", ".open-EditContract", function () {
var id = $(this).data('id');
$('#<%=ddlTsaIdEdit.ClientID%>').val(id);
$('#editContract').modal('show');
});
同样在后端我有代码填充page_load事件的下拉列表:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Clear();
dict = util.TsaIdForContract(Convert.ToInt32(Request.QueryString[0]));
ddlTsaIdEdit.DataSource = dict;
ddlTsaIdEdit.DataTextField = "Value";
ddlTsaIdEdit.DataValueField = "Key";
ddlTsaIdEdit.DataBind();
ddlTsaIdEdit.Items.Insert(0, new ListItem("-- Select TSA ID --", "0"));
我在gridview动作中触发了模式弹出窗口的显示:
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<a style="text-decoration:none;" class="btn btn-info open-EditContract" data-id='<%#Eval("ID") %>' href="#"><i class="icon-edit icon-white"></i></a>
</ItemTemplate>
</asp:TemplateField>
设置文本框的值可以正常使用该方法但不适用于下拉列表,所以我希望有人提供他们的建议。 此外,我可以看到源中的值,当我在JS中发出警报(id)时,我可以看到消息框中的值。 欢迎提出建议。 感谢
答案 0 :(得分:0)
添加此功能:
function SetDropDownList(ddl, value) {
var a = document.getElementById(dropdownlist);
for (i = 0; i < a.length; i++) {
if (a.options[i].value == value) {
a.selectedIndex = i;
}
}
}
并设置下拉值,如下所示:
var id = $(this).data('id');
SetDropDownList('<%=ddlTsaIdEdit.ClientID %>', id)
这对我来说总是有用的。另外,请确保通过发送提醒或签入id
来获取console.log
的有效值。
答案 1 :(得分:0)
我有一个类似的解决方案,我几天前已经实现了。 可能有用。我使用带有值的HTML表格,但您可以使用页面的任何控件。
$("#GridViewProducts").find('tbody > tr').each(function() {
if ($(this).find('#SequenceNumber').text() == SequenceNumber) {
$('[id*="DropDownListProductDetailCountry"]').val($(this).find('#CountryId').text());
}
});
希望得到这个帮助。