在listview itemcommand上保留会话变量的最佳方式ASP.NET
问题描述:
由于itemcommand事件在大部分(如果不是全部)页面/控件init/load事件之后触发。什么是持久化在itemcomment上修改的会话变量数据的最佳方式(例如添加项目),以便页面可以使用修改的会话对itemcommand做出反应?在listview itemcommand上保留会话变量的最佳方式ASP.NET
答
你能赶上回发早前在页面的生命周期:
// id of the control
string id = Request.Form["__EVENTTARGET"];
if (!string.IsNullOrEmpty(id) && id.Contains("myControlId"))
{
string argument = Request.Form["__EVENTARGUMENT"];
...
}
,但它既不非常优雅也不安全。我会遵循Skowronek的建议:在PreRender上放置更多的逻辑。
我只看到(和工作)的解决方案是处理页面预渲染上的任何功能。似乎可以工作,但奇怪的是itemcommand不像其他控件事件那样触发。 – Skowronek 2010-08-06 19:08:53
你能提供一个你想要做什么和没有为你工作的例子吗? 一般而言,您应该可以根据您在itemcommand处理程序中看到的适应性来修改会话,但由于大多数页面事件已经触发了您的页面,所以在下一个请求(通常不是你想要什么)。 – 2010-08-06 19:35:06
问题是我需要一个计数器在页面中点击一个按钮后在页面上更新。我可以通过将更新逻辑放入页面预渲染事件中来完成。 – Skowronek 2010-08-07 15:51:39