如何在回发后保留下拉列表数据

How to preserve dropdown data after postback

本文关键字:保留 下拉列表 数据      更新时间:2023-09-26

我正在使用Jquery在客户端绑定下拉列表。我正在使用PageMethods从服务器获取数据。

.html

<asp:DropDownList ID="ddlCountry" runat="server" ClientIDMode="Static" 
                  onchange="return country_changed();" ViewStateMode="Enabled">
</asp:DropDownList> 

.JS

function GetCountryLst() {
    PageMethods.GetCountryList(OnsuccessCountry);
    return false;
}
function OnsuccessCountry(result) {
    $("#ddlCountry").append("<option value='Select'>Select</option>");
    for (var eachval in result) {
         $("#ddlCountry").append("<option value='" + result[eachval].id + "'>" + result[eachval].name + "</option>");
    }
    return false;
}

当我写的时候点击按钮

protected void Button2_Click(object sender, EventArgs e)
{
    var ddlcount = ddlCountry.Items.Count;
}

我得到 ddlCount = 0;如何保留数据

<input type='hidden' id='items' />
function OnsuccessCountry(result) {
    $("#ddlCountry").append("<option value='Select'>Select</option>");
    for (var eachval in result) {
         $("#ddlCountry").append("<option value='" + result[eachval].id + "'>" + result[eachval].name + "</option>");
    $("#items").val($("#items").val() + ";" + result[eachval].id) ;
    }
    return false;
}

并在服务器端拆分(用;)这个隐藏字段的值,并获取计数和所有项目。

如果使用 Page 方法填充数据,则无法从服务器端获取下拉列表项计数。因为当事件发生时Page_load它将被清除。