有没有办法保持价值观? – 在回发中丢失了

我有两个选择使用作为国家/州的下拉列表

一切都按照我的预期工作,但当我做回发后,我失去了上面的值保留价值的最佳方法是什么,你能告诉我一个例子吗?

  

谢谢。

如果您将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... });  

更新:

我想出了一个更好的解决方案。 我希望您只想从选择列表中捕获选定的值,并且不需要保留整个国家/州集合。

我会设置我的aspx页面:

      

在我的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; } 

如果您确实想要重新选择以前选择的Country / State对,那么在您的jQuery代码使用您的ajax例程加载States和States后,之前选择的值仍将在该隐藏字段中,您可以使用那里的值。

你有一些选择:

  • 你可以做某种’ajax post’,这样整个页面就不会刷新了。
  • 您可以从服务器流回所选数据。
  • 您可以将选定的数据存储到cookie中。