Если вы используете ASP.NET с некоторым jQuery, вы можете установить значение скрытого поля в посте назад. Затем в $ (document) .ready () вы просто читаете это значение из скрытого поля.
В вашем коде позади:
protected void Button1_Click(object sender, EventArgs e)
{
this.countryField.Value = "WhateverValueYouWantToPersist";
}
В вашем файле aspx:
$(document).ready(function(){
var persistedValue = <% this.countryField.ClientID %>;
// do something...
});
<asp:HiddenField runat="server" ID="countryField" />
Обновление:
Я придумал немного лучшее решение. Я надеюсь, что вы хотите захватить только выбранные значения из списков выбора, и вам не нужно сохранять всю коллекцию стран / штатов.
Я бы настроил свою страницу aspx следующим образом:
<asp:DropDownList runat="server" ID="countryField" />
<asp:DropDownList runat="server" ID="stateField" />
<asp:Button runat="server" ID="button1" OnClick="button1_click" OnClientClick="return clientSideClick()" />
<asp:HiddenField runat="server" ID="hiddenCountry" />
<asp:HiddenField runat="server" ID="hiddenState" />
В моем jQuery у меня была бы функция для обработки этого клика, которая захватывает выбранные значения и устанавливает значение для скрытых полей:
function clientSideClick() {
var state = $("#<%= this.stateField.ClientID %> :selected").val();
$("#<%= this.hiddenState.ClientID %>").val(state);
var country = $("#<%= this.countryField.ClientID %> :selected").val();
$("#<%= this.hiddenCountry.ClientID %>").val(country);
}
Затем в событии отправки сообщения на стороне сервера вы можете зафиксировать значение скрытых состояний и делать с ним все, что вам нужно:
protected void button1_click(object sender, EventArgs e)
{
string stateValue = this.hiddenState.Value;
string countryValue = this.hiddenCountry.Value;
}
Если вы хотите повторно выбрать ранее выбранную пару Страна / Штат, то после того, как ваш код jQuery загрузит Страны и Состояния, используя ваши подпрограммы ajax, ранее выбранные значения все еще будут в этом скрытом поле, и вы можете использовать значения оттуда.