1

场景:我有一个有两个下拉列表的用户控件。根据第一个下拉列表中的选择,获取并填充第二个下拉列表的值。因此,第一个下拉菜单会进行回发并为第二个下拉菜单提取数据。因此,第二个下拉列表不需要对任何选择更改进行任何回发。

此用户控件正在网格视图中的页面上使用,因此它会根据网格中的记录数重复多次。

问题:当我在任何下拉列表中进行选择时,我之前在所有用户控件下拉列表中的选择都会丢失并重置为下拉列表中的第一项。

对我有用的解决方案:我可以通过为相应的 DropDownList 设置在 SelectedIndexChanged 事件上的视图状态中所做的选择来解决此问题。但我想避免第二个下拉菜单进行回发,因为它不做任何与 UI 相关的事情(更改或拉取额外数据以在屏幕上更新),从用户的角度来看,这是浪费时间,因此很烦人。

我也尝试过使用javascript将我想要保留的值写入隐藏字段,但是刷新页面时隐藏字段值是空的。

那么,在不必回发或编写服务器端代码的情况下持久保存下拉值的最佳方法是什么?

提前致谢。

4

1 回答 1

1

@Aniruddha,我猜你是在 UserControl 的页面加载时填充第一个下拉列表,所以在 !IsPostBack 约束中编写该代码,即

protected void Page_Load(object sender, EventArgs e)
{
   if(!IsPostBack){
      // Write your existing drop down bind or other code here.
   }
}

Aniruddha 您可能在 Page_Load 中绑定了您的网格,因此在这种情况下,!IsPostBack在上述约束下绑定网格

希望对你有帮助 !!

于 2012-08-26T11:27:15.947 回答