我遇到了一個我正在建立的尋呼控制的問題。我的代碼如下ASP.NET控制渲染管道
protected override void CreateChildControls()
{
base.CreateChildControls();
pnl = new Panel { ID = "NewsPager", CssClass = "NewsPager" };
Controls.Add(ddl);
AddPagerControls();
}
AddPagerControls增加了大量使用同一個事件處理了LinkButton的:
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,則在調試代碼時「Next」按鈕的CommandArgument將爲3。 但是,當頁面已經呈現並且我點擊下一個按鈕時它將會工作一次(從第1頁到第2頁),但是它總是2,即使在代碼中它被設置爲3。控制被呈現。
我有點在這裏損失。我嘗試將CreateChildControls中的AddPagerControls調用更改爲if(!Page.IsPostBack){AddPagerControls();},但事件處理程序根本不會觸發。
編輯: P.S.I當從事件處理程序調用AddPagerControls方法時,做一個pnl.Controls.Clear(),否則LinkButtons將被添加兩次。
編輯:P.P.S.我recaculate它了LinkButton每次補充,因爲我需要只顯示5個環節如果有更多的存在,那麼即頁面
< < < 2 3 4 5 6 7> >>
已經嘗試過,即使當liNext LinkButton總是在那裏,使其在需要時可見並在事件處理程序中設置CommandArgument導致相同的事情時,我可以單擊任何鏈接一次,然後停止工作,就好像是控件在控制樹之外或其他東西(不可能,我知道...) – Colin 2009-06-23 09:53:24