繁体   English   中英

如何存储ASP.NET CommandName和CommandArgument值?

[英]How ASP.NET CommandName and CommandArgument values are stored?

有谁知道控件的CommandName和CommandArgument属性存储在哪里? 我对检索它们不感兴趣,只是为了了解有关ASP.NET内部和未来页面大小的更多信息。 :)

我创建了一个包含3个按钮的简单页面,其commandArg和CommandName设置如下:

<asp:Button Text="Click1" runat="server" CommandArgument="1" CommandName="Delete" OnCommand="CommandExec" />
<asp:Button Text="Click2" runat="server" CommandArgument="2" CommandName="Save" OnCommand="CommandExec" />
<asp:Button Text="Click3" runat="server" CommandArgument="3" CommandName="Copy" OnCommand="CommandExec" />

将CommandArgument或CommandName更改为相当大的值不会影响ViewState的内容和大小,因此存储这些值的位置是什么?

感谢名单

这些值确实存储在ViewState

如果您使用带有和不带CommandArguments / Names等的按钮进行简单的GridView测试......那么您可以看到ViewState更大。

但是,这些值永远不会是真正的大型对象或任何东西,所以我个人不会担心它。

如果你想了解ASP.NET内部,我仍然认为最好的书是由Nikhil Kothari和Vandana Datye开发ASP.NET服务器控件和组件 它是为.NET 1.x编写的,所以有点陈旧,但仍然很好地涵盖了基本架构。

在您的示例中,ViewState大小不受影响的原因是在处理标记的Init阶段期间未跟踪ViewState。 在标记中设置为固定值的属性值将在编译ASP.NET页面时生成的代码中进行硬连线。

这篇MSDN文章很好地概述了ViewState。

如果将按钮放在数据绑定控件(如转发器或GridView)中,并使用数据绑定语法为每行的CommandArgument设置不同的值,您将看到ViewState在增长。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM