【问题标题】:Dynamic LinkButton on GridView PagerTemplate not firing eventGridView PagerTemplate 上的动态链接按钮未触发事件
【发布时间】:2013-09-03 10:23:06
【问题描述】:

我正在为 gridview 做一个自定义寻呼机模板并试图得到类似的东西:

我在点击数字时遇到问题...

在 PagerTemplate 中,我有一个名为“phLinks”的占位符,它正在填充 DataBound 事件,如下所示:

protected void DataBound(object sender, EventArgs e)
    {
        if (grid.PageCount > 1)
        {
            for (int i = 0; i < grid.PageCount; i++)
            {
                phLinks.Controls.Add(new LiteralControl("<li>"));
                LinkButton lb = new LinkButton { Text = (i + 1).ToString(), Enabled = grid.PageIndex != i, CommandArgument = i.ToString() };

                lb.Command += new CommandEventHandler(lb_Command);
                lb.CommandName = "Button";

                //lb.Click += new EventHandler(lb_Click);

                phLinks.Controls.Add(lb);
                phLinks.Controls.Add(new LiteralControl("</li>"));
            }
        }
    }

请注意,我先尝试了 Click 事件,然后尝试了 Command 事件,在这两种情况下,我都收到了回复,但没有触发该事件...

我在这里错过了什么?

【问题讨论】:

  • 您为什么使用 PageTemplate?如果您设置 PagerSettings-Mode="Numeric" 属性,您将获得数字寻呼机。
  • 我正在使用 PagerTemplate 因为我需要向 Pager 添加其他信息
  • lb.CommandName = "按钮";将此更改为 lb.CommandName = "Page";
  • 以前试过,没用...

标签: c# asp.net events gridview pagertemplate


【解决方案1】:

在每次回发时绑定您的GridView

protected void Page_Load(object sender, EventArgs e)
    {
       MyGridView.DataBind();

    }

或者为你的 GridView 关闭 ViewState::

&lt;asp:GridView ID="MyGridView" EnableViewState="false" ... /&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    相关资源
    最近更新 更多