2011-05-18 68 views
0

我在使用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;我如何保存數據

+0

[Rü使用更新面板? – Marwan 2011-05-18 11:12:49

+0

不,我沒有使用updatepanel。但是,我不介意使用它,如果我得到的值在服務器端 – Tuscan 2011-05-18 11:21:06

+0

你只想計數或所有的值也? – 2011-05-18 11:21:32

回答

1
<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; 
} 

和分裂(與)這個隱藏字段在服務器端的價值,並得到數和所有物品也..

0

如果您使用Page方法填充數據,則無法從服務器端獲取下拉列表項計數。因爲當Page_load事件發生時它將被清除。

+0

爲什麼?頁面方法怎麼回事 – Tuscan 2011-05-18 11:14:12

+0

@ Ulhas Tuscano:在ViewState中存儲的所有DropDownList項目,但在調用頁面方法ViewState時,如果您使用pagemethod在客戶端(javascript)填充文本框,則不會呈現 – 2011-05-18 11:19:32

+0

。即使在回發後,我仍然可以在服務器上獲得文本框值 – Tuscan 2011-05-18 11:23:50