2013-04-05 104 views
0

我想用jquery设置dropdownlist的值。 我试过网站上的一些解决方案,但没有一个适用于我的解决方案。 这是我有:用jquery选择dropdownlist值

$(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

添加此功能:

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

+0

不适合我,同样的事情:/我可以看到警报命令的价值@ Will.i.am – Laziale 2013-04-05 19:52:30

+0

看起来像dropdowlist或其他问题。不能说很多不考虑aspx和cs代码... – 2013-04-05 19:56:15

+0

更新:它适用于Firefox但不适用于Chrome – Laziale 2013-04-05 20:01:46

0

我有一个类似的解决方案,我已经实施了几天前。 可能会有用。我用一个HTML表格来处理它的值,但是你可以使用任何你的页面控件。

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

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

    } 
}); 

希望得到这个帮助。