3

GridVew を継承するサーバー コントロールを作成しています。コントロール内で動的に作成された画像ボタンがいくつかあります。ボタンごとに、何かを行うと思われるイベントがあります。すべてが良さそうに見えますが、イベントがトリガーされることはありません。ここに私のコードの一部があります:

//Class with dynamically created elements (custom grid pager)
public class GridPager
{
     public event CommandEventHandler PageNumberClick;

     //Element creation inside for scope
     for(....)
     {
        ImageButton img = new ImageButton();
        img.ImageAlign = ImageAlign.AbsMiddle;
        img.ID = "lnkLastPage" + i.ToString();
        img.CommandName = "Page";
        img.CommandArgument = ((totalPages - 1) * maxPageRows).ToString();
        imgBtn.Command += new CommandEventHandler(PageNumberClick);            
        tableCell.Controls.Add(img);
     }
}

public class MyGridControl : GridView  
{
    [Bindable(true)]
    [Category("Appearance")]
    [DefaultValue("")]
    [Localizable(true)]

    GridPager.PageNumberClick += new CommandEventHandler(lnkPage_Click);

    void lnkPage_Click(object sender, CommandEventArgs e)
    {
       PageIndex = Int32.Parse(e.CommandArgument.ToString());
       BindData();
    }
}
4

1 に答える 1

0

動的コントロールを再作成する必要がありon every postbackます。ポストバックごとにページの新しいクラス インスタンスが作成されるため、前回作成した動的コントロールを再作成する必要があることに注意してください。

この記事を見る

そしてこれ

于 2012-10-02T11:41:03.070 に答える