如何使用jquery设置aspnet下拉列表的选定值

时间:2018-05-04 18:23:12

标签: c# jquery asp.net dropdown

我有一个带有asp下拉列表的c#web用户控件。我想使用jquery或类似的方法根据网站的网址设置选定的值。

<asp:DropDownList ID="LangSelect" runat="server" AutoPostBack="True" OnSelectedIndexChanged="LangSelect_SelectedIndexChanged" >
    <asp:ListItem Text="English" Value="English"> English</asp:ListItem>
    <asp:ListItem Text="Français" Value="Français"></asp:ListItem>
    <asp:ListItem Text="Español" Value="Español"></asp:ListItem>
    <asp:ListItem Text="Deutsch" Value="Deutsch"></asp:ListItem>
</asp:DropDownList>

我试过这个:

<script>
    if (window.location.href.indexOf('de') > 0) {
        $("#LangSelect").val('Deutsch');
    }
</script>

然而,它给出了一个错误:

未捕获的TypeError:无法读取null的属性'val'

3 个答案:

答案 0 :(得分:1)

准备好文档以确保加载DOM,并使用LangSelect.ClientID获取ASP.NET生成的HTML标记的LangSelect ID。

$(document).ready(function () {
    if (window.location.href.indexOf('de') > 0) {
        $('#<%= LangSelect.ClientID %>').val('Deutsch');
    }
});

答案 1 :(得分:0)

问题在于您的选择器,首先,您在开始时错过了#以表明它是一个ID,但即便如此,您的元素设置为runat="server",这将更改实际的ID页面渲染时的html元素。

为此,您可以添加ClientIDMode="Static"要锁定ID的元素,也可以将选择器更改为$([id$=LangSelect]),我更喜欢使用ClientIDMode

答案 2 :(得分:0)

$(document).ready(function(){     if(window.location.href.indexOf(&#39; de&#39;)&gt; 0){       $(&#39;&LT;%= LangSelect.ClientID%GT;&#39)。发现(&#39;选项[值=&#39;德语&#39;]&#39)。丙(& #39;选择&#39;,true);

}

});