2009-06-12 117 views
1

我有一个母版页和内容占位符。在contentplaceholder中有一个占位符,用于插入动态链接按钮。当我运行页面链接按钮不会显示在页面上。动态添加链接按钮

for (int i = 0; i < UserCredentialsDT.Rows.Count; i++) 
{ 
    switch (Convert.ToInt32(UserCredentialsDT.Rows[i]["RoleId"])) 
    { 
     case (int)Helper.UserRole.Administrator: 
      Session[AppConstants.ROLEID] = UserCredentialsDT.Rows[i]["RoleId"]; 
      LinkButton lnkAdmin = new LinkButton(); 
      lnkAdmin.Text = "Admin"; 
      lnkAdmin.ID = "lnkAdmin" + i.ToString(); 
      PlaceHolder1.Controls.AddAt(PlaceHolder1.Controls.Count, lnkAdmin); 
      lnkAdmin.Visible = true; 
      lnkAdmin.PostBackUrl = PresentationConstant.ASPX_ADMINSETTINGS; 
      break; 
    } 
} 
+0

那个占位符是否在与当前页面不同的内容占位符中?你能参考它吗?如果你想改变这个,你需要将代码放在Page_PreInit(object sender,EventArgs e)事件处理程序中,并且AutoEventWireUp应该设置为true才能工作。 – 2011-09-01 13:05:22

回答

3

如果您正在动态添加此项,您可能需要确定要使用哪个阶段的页面循环。这可能因其他因素而异。但肯定会在您的PreInit,Init和Load事件中进行阅读。

2

这不能在MasterPages ContentPlaceHolder内完成,ContentPlaceHolder用于使用MasterPage的WebForms。我建议将你的PlaceHolder控件放在ContentPlaceHolder之外。

从MSDN:

甲ContentPlaceHolder控件限定 相对区域用于在 主页的内容,并使得所有文字, 标记,并从在 发现 相关内容控制服务器控制内容页。