Masterpage下拉列表不保留选定的索引

时间:2009-04-28 22:14:40

标签: asp.net session drop-down-menu master-pages viewstate

好的,我的母版页有一个下拉列表,可以控制影响很多事情的大小。我需要从内容页面访问下拉列表索引,所以我使用此代码。

public partial class MasterPage : System.Web.UI.MasterPage
{
public DropDownList MySize { get { return _ddlSize; } }
}

我正在使用Ajax,当大小改变时,Masterpage上的菜单变化很好。

但是当我点击更新的菜单时,它会使用我的内容页面上的下拉列表的零索引,即使通过视觉显示我选择的大小。

  int size = Convert.ToInt32(Master.MySize.SelectedItem.Text); //Uses 0 index :(

我不想使用Session,我只是不明白为什么这在100%的时间都不起作用。有人有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我明白了!

我将下拉列表设置为公共静态对象

public static DropDownList MySize;

然后我只是在每次加载母版页时将其设置为等于页面实例。

protected void Page_Load(object sender, EventArgs e)
{
    MySize = _ddlSize;
}

调用DropDownList有点不同,因为它是一个静态对象。

MasterPage.MySize.SelectedItem.Text

但它适用于源自母版页的所有内容页面。

答案 1 :(得分:0)

您是否在多用户方案中检查此解决方案,因为该值是静态的,它将反映在不同的用户中

主页面中设置的视图状态应保留下拉列表值或尝试使用隐藏控件来保持值