动态链接按钮上点击
问题描述:
我试图解决一个问题与一些代码(不是我写的)动态链接按钮上点击
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,因为它将在每次回发时被调用,并且所有动态控件(及其事件)都必须在回发时重新创建。
答
有三种可能性:
- 你必须创建Init事件动态控制和 将它们添加到父控件。
- 您将在每个页面加载中重新创建控件。
- 如果您已完成此操作并仍然收到错误,请检查您动态添加的每个控件的ID以及它们的父控件。确保不存在特殊字母。确保ID值是唯一的。你会好起来的。
我没有加载回发上的控件,谢谢! – flyersun 2010-09-14 16:24:59