有没有办法保持价值观? – 在回发中丢失了
我有两个选择使用作为国家/州的下拉列表
一切都按照我的预期工作,但当我做回发后,我失去了上面的值保留价值的最佳方法是什么,你能告诉我一个例子吗?
谢谢。
如果您将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中。