问题标签 [viewstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3133 浏览

asp.net - 在父级中禁用时,如何为子级自定义控件启用 ViewState?

我正在尝试创建一个自定义控件,它类似于“gridview”控件,但专门用于实现某些自定义接口的业务对象。

在这样做时,我遇到了以下问题。

我有一个控件,我禁用了视图状态(并且我不想重新启用它),它有一个我希望启用视图状态的子控件。我似乎无法让子控件上的视图状态工作,因为它的父母被禁用。有没有人知道如何让它发挥作用?

0 投票
1 回答
979 浏览

asp.net - 如何正确处理复合控件中子控件的视图状态?

我有一个包含 ListBox 子控件的复合控件。在回发时,ListBox 的项目消失。我有一个用于初始化它的 ListBox 的属性,并将它添加到 CreateChildControls 中的控件集合中。难道我做错了什么?我是否需要做其他事情才能正确处理此 ListBox 的视图状态?

0 投票
3 回答
1904 浏览

jsp - JSP-Servlet 应用程序的任何视图状态实现?

您是否知道任何可以提供与 Viewstate 在 ASP.NET 中提供的类似行为的实现/技术。(将数据序列化到 HTML 表单中的隐藏字段中)。

我只使用 JSP、Servlet 和 Spring MVC。

0 投票
8 回答
23136 浏览

c# - 为少数控件启用 ViewState 并为其他/页面禁用

当我禁用页面的 ViewState 时。它不允许任何其他控件使用 ViewState .. 即使我为该特定控件设置 EnableViewState="true" ..

当为页面本身禁用 ViewState 时,是否可以为控件启用 ViewState?

如果不是,如何禁用页面上控件的视图状态,除了少数没有明确指定 EnableViewState="false" .. 在这么多控件中输入相同内容是忙碌的..

0 投票
9 回答
13062 浏览

c# - .NET 中的动态控件问题

动态控制的问题

大家好,

我想创建一些动态控件,并让它们在页面加载时保持其视图状态。很容易,对吧?我所要做的就是在每次页面加载时使用相同的 ID 重新创建控件。但是,这是一个问题 - 在我的 PreRender 事件中,我想清除控件集合,然后使用新值重新创建动态控件。造成这种情况的原因很复杂,我可能要花一页左右的时间来解释我为什么要这样做。所以,为了简洁起见,让我们假设我绝对必须这样做,并且没有其他方法。

在我在 PreRender 事件中重新创建控件后,问题就出现了。重新创建的控件永远不会绑定到视图状态,并且它们的值不会在页面加载时保持不变。我不明白为什么会这样。我已经在我的 OnLoad 事件中重新创建了控件。当我这样做时,只要我每次都使用相同的 ID,新创建的控件就可以很好地绑定到 ViewState。但是,当我尝试在 PreRender 事件中做同样的事情时,它失败了。

无论如何,这是我的示例代码:

命名空间 TestFramework.WebControls {

}

因此,让我们检查案例 1,其中 [CASE 1] 旁边的行没有被注释掉,但 [CASE 2] 旁边的行被注释掉了。在这里,一切正常。当我将此控件放在页面上并加载页面时,我看到一个显示“单击”的链接。当我点击链接时,页面输出文本“[new value]”,在下一行,我们看到熟悉的“Click”链接。每次我点击“点击”链接时,我们都会看到同样的事情。到现在为止还挺好。

但是现在让我们检查案例 2,其中 [CASE 1] 旁边的行被注释掉了,但 [CASE 2] 旁边的行没有被注释掉。在这里,我们遇到了问题。当我们加载页面时,我们会看到“点击”链接。但是,当我单击链接时,页面会输出文本“[]”而不是“[新值]”。点击事件正常触发。但是,我分配给控件的 Value 属性的“新值”文本不会保留。再一次,这对我来说有点神秘。为什么,当我在 OnLoad 中重新创建控件时,一切都很好,但当我在 PreRender 中重新创建控件时,值不会被持久化?

我觉得必须有一种方法可以做到这一点。当我在 PreRender 中重新创建控件时,有没有办法将新创建的控件绑定到 ViewState?

我已经为此苦苦挣扎了好几天。您能给我的任何帮助将不胜感激。

谢谢。

0 投票
3 回答
3252 浏览

asp.net - asp.net:获取 DropDownList 的 SelectedItem 并保留列表项

问题来了。。

我有一个带有标签、下拉列表和提交按钮的小页面。

在表单加载时,我将项目插入下拉列表,然后单击按钮,我将显示下拉列表中项目的计数。这是代码。

if (Page.IsPostBack) { Message.Text = "You have selected " + Dropdownlist1.Items.Count.ToString(); } else { Message.Text = "You have selected " + Dropdownlist1.Items.Count.ToString(); Dropdownlist1.Items.Add("Madrid"); Dropdownlist1.Items.Add("Chennai"); Dropdownlist1.Items.Add("New York"); }

这是有趣的部分。如果我直接从 IDE 运行它,它工作得非常好。我第一次得到计数为 0,当我按下提交按钮时得到 3。我需要在现有的虚拟目录上运行这个小代码。如果我在该虚拟目录中运行相同的 aspx 页面,我会在第一次加载时得到计数 0。当我单击提交时,我得到计数​​为 0,并且我在下拉列表中看不到任何项目,它正在被清除。我已将 viewstate 设置为 true,以便我记住插入的内容。

我不确定当我从 IDE 运行它和从另一个虚拟目录运行它时有什么区别。我对 Asp.Net 还很陌生,所以我在这里介绍了所有选项,以便了解下拉列表的工作原理。我在这里缺少配置吗?

顺便说一句,仅供参考,当我将 DropDownList 放在向导控件中时,我遇到了同样的问题。当从 IDE 运行时,它工作正常,但是当我从虚拟目录运行时,它没有获得选定的值,也没有记住下拉列表中的项目。

对此的任何帮助将不胜感激。


对不起:(,还有几个问题

根据您的代码,该列表仅在不是 PostBack 时才会被填充。因此,当您单击按钮时,列表将为空。如果您动态填充列表,则不会记住这些项目。您必须在每个 Page_load 中添加。视图状态只会记住选择了哪个项目。

当页面直接从 IDE 执行时,它如何记住这些项目,而不记得我何时从虚拟目录运行。是否有我可能需要设置的视图状态才能使其正常工作。缓存设置也没有太大的运气。我启用了跟踪信息,又是一件有趣的事情:|,直接从 IDE 而不是从虚拟目录执行时会发生跟踪。再次提问,子目录的 web.config 应该覆盖父 web.config 对吗?

感谢回复。

0 投票
3 回答
2969 浏览

asp.net - ASP.NET 母版页和视图状态

我希望提高我的网站的性能,不是因为它表现不佳,而是作为一般练习。对于 asp.net 站点的通常建议是尽可能删除视图状态。我相信这可以通过页面上的每个控件单独或整个页面来完成。

我的问题是,如果我禁用页面视图状态,这将停止母版页上控件的视图状态(据我所知,母版页实际上是页面上的控件)。

0 投票
4 回答
10231 浏览

asp.net - 为什么我的 asp:TreeView 选择的节点在 UpdatePanel 中被重置?

我有一个包含 2 的 asp.net 2.0 页面UpdatePanels

第一个面板包含一个TreeView控件,当我在三视图控件中选择一个节点时,它只会触发第二个的更新UpdatePanel。这是正确的行为。

更新面板之外的页面上有两个按钮(上一个/下一个)。这些按钮触发两个面板的更新。按钮的行为是选择树中的相邻节点。第一次单击其中一个按钮时,我得到了预期的行为,并且选择了相邻节点,并且两个面板都被更新以反映此更改。

当我再次单击这些按钮中的任何一个时,就会出现问题。树视图的选定节点似乎记住了先前选定的节点,并且按钮作用于该节点。所以上一个/下一个按钮的行为是什么都不做或跳回两个。

编辑- 演示我的问题的示例代码

标记

背后的代码

就像树的视图状态没有被保存?

0 投票
2 回答
981 浏览

asp.net - 在 ASP.Net 移动 Web 应用程序中存储视图状态的最佳方法是什么?

我很好奇您发现哪些技术对于在移动网络浏览器中运行的 ASP.Net 应用程序(即带有 Windows Mobile 的 Treo 或 Blackberry Curve 网络浏览器)最适合存储和维护视图状态。

0 投票
3 回答
1052 浏览

asp.net - site.master 中的 ViewState 错误点

我刚刚在 asp.net mvc beta 应用程序的示例文件夹下的新页面中添加了 asp.net 日历控件。当我执行我需要的特定页面时,它显示以下错误

视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

那指向这里。它在 asp.net mvc 的 site.master 中

通常为了避免这个错误,我们给出

但是,它对我不起作用。