动态链接按钮上点击

问题描述:

我试图解决一个问题与一些代码(不是我写的)动态链接按钮上点击

    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这个功能的...

这是哪里lnkbtnPageNumber,在gridView Pager中? 如果是这样,它在每次回传中还是被重新生成或添加f.e.在RowDataBound中? 在这种情况下最好的地方将在RowCreated,因为它将在每次回发时被调用,并且所有动态控件(及其事件)都必须在回发时重新创建。

+0

我没有加载回发上的控件,谢谢! – flyersun 2010-09-14 16:24:59

有三种可能性:

  1. 你必须创建Init事件动态控制和 将它们添加到父控件。
  2. 您将在每个页面加载中重新创建控件。
  3. 如果您已完成此操作并仍然收到错误,请检查您动态添加的每个控件的ID以及它们的父控件。确保不存在特殊字母。确保ID值是唯一的。你会好起来的。