2010-09-14 190 views
0

我試圖解決一個問題與一些代碼(不是我寫的)動態鏈接按鈕上點擊

    lnkbtnPageNumber.ID = "PageNumberCustomerRef" + intPageNumber.ToString(); 
        lnkbtnPageNumber.Command += new CommandEventHandler(lnkbtnPageNumber_Command); 
        lnkbtnPageNumber.CommandName = "DepotRef"; 
        lnkbtnPageNumber.CommandArgument = intPageNumber.ToString(); 
        lnkbtnPageNumber.Text = intPageNumber.ToString().PadLeft(3, '0'); 
        lnkbtnPageNumber.Attributes.Add("style", "margin: 2px;"); 
        pDepotRefPages.Controls.Add(lnkbtnPageNumber); 

此代碼創建一個鏈接按鈕沒有做任何事情,但是當我點擊按鈕這一頁。函數lnkbtnPageNumber_Command沒有被調用。腳本沒有得到它。

我試過谷歌,但無論我看到說這段代碼應該可以正常工作。

這裏是一個正在由函數調用的代碼:

void lnkbtnPageNumber_Command(object sender, CommandEventArgs e) 
{ 
    try 
    { 
     switch (e.CommandName) 
     { 
      case "GlobalID": 
       gintDocketNumberPage = Convert.ToInt32(e.CommandArgument); 
       break; 
      case "CreatedDate": 
       gintCreationDatePage = Convert.ToInt32(e.CommandArgument); 
       break; 
      case "Accounts": 
       gintAccountPage = Convert.ToInt32(e.CommandArgument); 
       break; 
      case "CustomerRef": 
       gintCustomerRef = Convert.ToInt32(e.CommandArgument); 
       break; 
      case "DepotRef": 
       gintDepotRef = Convert.ToInt32(e.CommandArgument); 
       break; 
      default: 
       gintDocketNumberPage = Convert.ToInt32(e.CommandArgument); 
       break; 
     } 

我真的難倒!如果我遺漏了任何東西,請告訴我。

感謝您提供任何幫助!

我剛纔讀的地方,這個代碼將不能工作,除非從Page_Init叫這如果是真的是一個而是痛因爲我不能把在Page_Init這個功能的...

回答

1

這是哪裏lnkbtnPageNumber,在gridView Pager中? 如果是這樣,它在每次回傳中還是被重新生成或添加f.e.在RowDataBound中? 在這種情況下最好的地方將在RowCreated,因爲它將在每次回發時被調用,並且所有動態控件(及其事件)都必須在回發時重新創建。

+0

我沒有加載回發上的控件,謝謝! – flyersun 2010-09-14 16:24:59

0

有三種可能性:

  1. 你必須創建Init事件動態控制和 將它們添加到父控件。
  2. 您將在每個頁面加載中重新創建控件。
  3. 如果您已完成此操作並仍然收到錯誤,請檢查您動態添加的每個控件的ID以及它們的父控件。確保不存在特殊字母。確保ID值是唯一的。你會好起來的。