作成中のページャー コントロールに問題があります。私のコードは次のとおりです
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 の場合、コードのデバッグ時に [次へ] ボタンの CommandArgument は 3 になります。ただし、ページがレンダリングされ、次のボタンをクリックすると、(ページ 1 から 2 に移動する) 1 回は機能しますが、コードでは 3 に設定されていても、常に 2 になります。レンダリングされます。
私はここで少し途方に暮れています。CreateChildControls の AddPagerControls への呼び出しを if(!Page.IsPostBack){AddPagerControls();} に変更しようとしましたが、イベント ハンドラーはまったく起動しません。
編集: AddPagerControls メソッドがイベント ハンドラーから呼び出されると、PSI は pnl.Controls.Clear() を実行します。そうしないと、LinkButtons が 2 回追加されます。
編集:PPSページが存在する場合、5つのリンクのみを表示する必要があるため、毎回追加するリンクボタンを再計算します。
<< < 2 3 4 5 6 7 > >>