【问题标题】:page strange behavior页面奇怪的行为
【发布时间】:2011-09-20 11:42:38
【问题描述】:

我在我的页面中遇到了如此奇怪的动作。

我有一个单选按钮列表,根据选择我执行特定的代码。

问题是:

例如,当我选择选项2 然后我选择返回选项1

页面保持状态(所有下拉列表保持其先前的选择),我需要再次单击链接以强制页面进入此状态:

if (!Page.IsPostBack)
{
    BindCamp(0);
    BindCamp(1);
}

我的 aspx :

<asp:RadioButtonList ID="rbl" runat="server"
     OnSelectedIndexChanged="rbl_SelectedIndexChanged"
     RepeatDirection="Horizontal" Width="200px" AutoPostBack="True">
  <asp:ListItem Value="0" Selected="True">view data</asp:ListItem>
  <asp:ListItem Value="1">view report</asp:ListItem>
</asp:RadioButtonList>

我的代码:

 protected void rbl_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (rbl.SelectedItem.Value == "0")
     {
         pnl_view.Visible = true;
         pnl_stat.Visible = false;
         pnl_rep.Visible = false;
     }
     else
     {
         pnl_view.Visible = false;
         pnl_all.Visible = false;
         pnl_Dean.Visible = false;
         pnl_research.Visible = false;
         pnl_stat.Visible = true;
     }
 }

【问题讨论】:

  • 你能详细说明一下这个问题吗...我不太确定这个描述的问题是什么...
  • 问题是:当我选择第二个选项时,我有一个单选按钮列表(两个选项),它显示一个面板包含两个下拉列表(我从这些 ddl 中选择项目)。然后,当我选择另一个单选按钮选项然后再次回到上一个选项,我发现我的 ddl 保持他们的选择!!!(就像它根本不做任何回发一样)。

标签: c# asp.net viewstate page-lifecycle


【解决方案1】:

根据您的 cmets,DLL 将始终保留其值,除非您手动设置选择,设置 EnableViewState="false"(然后禁用所有视图状态)。所以我认为你可能需要这样的代码:

ddl.SelectedIndex = 0; // or -1 depending on whether you want an item selected

点击下一个单选按钮时。

【讨论】:

  • 我一次又一次地错过了一些重要的问题,是的,这是关于viewstate,但是为什么重定向到同一页面时不能保持状态?非常感谢
  • 重定向是 GET 请求,而回发是 POST 请求。在 POST 请求中,它发布一个 __VIEWSTATE 元素,这是存储视图状态的位置。
猜你喜欢
  • 1970-01-01
  • 2020-08-16
  • 2017-12-07
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多