我有一个列表(ListView),它显示了很多信息,我想要做的是在DataBounded之后获取DataItem,即在ItemCommand事件上。
我知道我可以将密钥存储在DataKey中,但我需要存储比密钥更多的信息。
信息来自各种外部来源,我只需要保存用户点击的信息。
一些解决方案
在我写这篇文章时,我相信除了上面所写的内容之外,没有真正的解决方案。
任何人都有更好的解决方案吗?
答案 0 :(得分:0)
您可以在列表视图模板中使用不可见的文字控件来存储您的额外数据。如果您有复杂的对象,可以像xml一样放置任何内容。这会对每行使用viewstate,因此你会遇到与#4相同的问题,除非你将它存储在控件的行级别,控件将其上下文保存到viewstate而不是手动管理viewstate中的数据
我不建议使用#5,因为依赖视图的数据会导致您必须重新验证该数据服务器端,以确保有人没有弄乱它。
在某些时候,您需要存储信息服务器端或客户端。如果您担心服务器端存储或转发过程缓慢存在问题,那么将其存储在客户端,但意识到这将增加您的带宽和客户端并请求处理。
你真的需要测试你的具体案例,看看你能负担得起的负担,因为没有任何魔法可以消除这种负担。