2012-10-02 45 views
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(); 
    } 
} 

回答

0

您需要重新創建動態控件on every postback - 記住你的頁面的一個新的類實例被創建的每個回發,讓你先前創建的時間將需要的任何動態控件重建。

看到this article

and this one

+0

我重建他們包括所有的變化值,但我能不火的事件。 –

相關問題