当前位置:  开发笔记 > 编程语言 > 正文

动态加载控件 - 如何访问Page_Init中的值

如何解决《动态加载控件-如何访问Page_Init中的值》经验,为你挑选了1个好方法。

我在用户点击另一个LinkBut​​ton时动态加载LinkBut​​ton.我正在附加一个事件处理程序.当用户单击动态加载的LinkBut​​ton时,事件不会触发.

从我一直在阅读的内容中,我理解这是因为当页面回发时,动态加载的控件不再存在.看起来我应该确保在Page_Init中重新创建此控件.

动态创建的LinkBut​​ton取决于值(产品ID).我需要一些访问此值,以便我可以正确创建控件.ViewState无法访问,我担心如果我使用Session它可能会超时,然后这无济于事.有任何想法吗?

此外,我硬编码产品ID值仅用于测试,但仍未导致事件触发.我还需要做些什么吗?

protected void Page_Init(object sender, EventArgs e)
{
   SetTabText(1, 1);
}

SetTabText调用创建LinkBut​​ton的SetActionLinks:

protected Panel SetActionLinks(int prodID, int tabID) {
...
LinkButton lnkBtn = new LinkButton();
lnkBtn.ID = "lnkBtn" + rand.Next().ToString();
lnkBtn.CommandName = "action";
lnkBtn.Command += new CommandEventHandler(this.lnkAction_Command);
panel.Controls.Add(lnkBtn);
...
}
void lnkAction_Command(object sender, CommandEventArgs e)
{
   LinkButton btn = (LinkButton)sender;
   switch (btn.CommandArgument)
   {
      AddCart();
   }
}

Ender.. 6

您可以将产品ID放在隐藏字段中,并使用Page_Init获取其值

Page.Request(Page.FindControl("hdnPageIdField"))

这样您就不需要依赖ViewState或SessionState

另外对于动态控件我强烈建议你阅读这个greate arcticle系列



1> Ender..:

您可以将产品ID放在隐藏字段中,并使用Page_Init获取其值

Page.Request(Page.FindControl("hdnPageIdField"))

这样您就不需要依赖ViewState或SessionState

另外对于动态控件我强烈建议你阅读这个greate arcticle系列

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有