0

我正在尝试使用 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 中执行 alert(id) 时,我可以在消息框中看到该值。欢迎任何建议。谢谢

4

2 回答 2

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.

于 2013-04-05T19:34:44.190 回答
0

我有一个几天前实施的类似解决方案。可能有用。我使用了一个带有其值的 HTML 表,但您可以使用任何页面控件。

$("#GridViewProducts").find('tbody > tr').each(function() {
    if ($(this).find('#SequenceNumber').text() == SequenceNumber) {

        $('[id*="DropDownListProductDetailCountry"]').val($(this).find('#CountryId').text());

    }
});

希望这有帮助。

于 2013-04-05T20:07:57.467 回答