我有一个问题与一个寻呼机控制我的建设。我的代码如下

protected override void CreateChildControls()
{
  base.CreateChildControls();

  pnl = new Panel { ID = "NewsPager", CssClass = "NewsPager" };
  Controls.Add(ddl);

  AddPagerControls();
}

AddPagerControls增加了一堆LinkButtons使用同一事件处理程序:

private void li_Click(object sender, EventArgs e)
{
  selectedValue = ((LinkButton) sender).CommandArgument;
  AddPagerControls();
}

现在会发生什么的是,当我加入"下次"LinkButton,它得到它的CommandArgument设置正确使用:

var liNext = new LinkButton {ID = "NewsPagerLinkNext", Text = ">", CommandArgument = (int.Parse(value) + 1).ToString()};
liNext.Click += new EventHandler(li_Click);
pnl.Controls.Add(liNext);

即如果目前的页面是2,然后"下一步"按钮的CommandArgument将3时调试的代码。然而,页面时已经呈现的和我按一下按钮,它将作一次(从1页到2)但是,那么它就将总是2,即使在代码它被设定为3。所以一定发生时的控制。

我是一个位在一损失在这里。我试图改变的呼吁AddPagerControls在CreateChildControls到if(!页。IsPostBack){AddPagerControls();}但随后的事件的处理程序不会着火。

编辑: P.S.我做pnl。控制。明()当AddPagerControls方法被称为自事件处理,否则LinkButtons将增加两倍。

编辑:P.P.S. 我recaculate其Linkbuttons添加的每一时间因为我需要证明只有5个链接,如果更随后的网页存在即

<< < 2 3 4 5 6 7 > >>

有帮助吗?

解决方案

我不明白的是为什么你再生你的传呼控制所有的时间。你就不能使用一种方法,你有你的链接的按钮"上一个"和"下一步"和你保持在视图状态的控制(如独立性)目前的网页,查看和项目的数额(即页面尺寸)?

在事件处理程序然后你做的适当的行动,因为您知道您目前的页会喜欢的东西 currentPageIndex+1 或者类似的东西。再生的上/下一个按钮的时候,尤其是在li_Click 处理程序不是一个好的做法从我的角度来看,这也是可能会导致您的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top