【问题标题】:Switched to ASP.NET 3.5, DropDownList doesn't remember dynamically added items切换到 ASP.NET 3.5,DropDownList 不记得动态添加的项目
【发布时间】:2009-01-15 00:37:01
【问题描述】:

我有一个网站,它使用了几个数据绑定的 DropDownLists。我也在做传统的 if (!IsPostBack) {list.Databind();} 并依靠 viewstate 在回发期间保持列表的填充。我最近将该站点转换为 ASP.NET 3.5,并注意到在回发期间列表为空(好像 ViewState 已禁用)。我没有明确禁用任何东西,我想知道是否有人在他们的视图状态相关控件中看到了类似的变化或行为。

谢谢!

詹姆斯

【问题讨论】:

  • 您对列表使用什么类型的数据源?数据源是如何/在哪里定义的?

标签: asp.net drop-down-menu asp.net-3.5 viewstate


【解决方案1】:

我确实看到过类似的问题(尽管我的问题是可见性)。尝试确保 ViewState 在整个控件层次结构中显式启用,一直到下拉列表。

例如

‹asp:Page EnableViewState="True" ...›
     ...

     ‹asp:Panel EnableViewState="True"...›
         ...
         ‹asp:DropDownList EnableViewState="True" ...›
         ...
      ...
...

R.

【讨论】:

  • 感谢您的指导。我在母版页中找到了禁用的视图状态(在我的 Edit-Find In Files 搜索中以某种方式错过了它)。非常感谢!
【解决方案2】:

粘贴到麻烦页面的这个 sn-p 是查看视图状态启用/禁用位置的快速方法。

<%
Control c = <YourMisbehavingControlNameHere>;

while ( c != null )
{
    Response.Write( c.GetType().Name + " = " + c.EnableViewState.ToString() + "<br/>" );

    c = c.Parent;
}

%>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多