如何链接div单击按钮单击服务器端以进行动态控制

时间:2014-11-24 04:25:33

标签: c# html asp.net updatepanel dynamic-controls

我有一个要求,我需要能够click动态生成 div

所以,我已经生成了buttons also dynamically,并希望链接 ClickEvent of Buttondiv's Click event

for (int i = 0; i < DtUsers.Rows.Count; i++)
{
     ASPxButton btnButton = new ASPxButton();
     btnButton.ID = "btnButton" + (i + 1);
     btnButton.Visible = false;
     btnButton.Click += new EventHandler(this.btnButton_Click);
     btntButton.CommandArgument = DtOnlineUsers.Rows[i]["USER_ID"].ToString();        

     var divCustomItem = new HtmlGenericControl("div");

     divUandMeUsers.Controls.Add(divCustomChatItem);

     divCustomItem.Controls.Add(btnButton);
     divCustomItem.Attributes.Add("onclick", "document.getElementById('<%= " + btnButton.ClientID + "  %>').click()");
}

但是,它没有用。你能告诉我哪里做错了吗? 我需要对UpdatePanel AsyncPostBackTrigger做些什么吗? 当我click the div时,在developer tools中,它会说Uncaught TypeError: Cannot read property 'click' of null

1 个答案:

答案 0 :(得分:0)

更改

divCustomItem.Attributes.Add("onclick", "document.getElementById('<%= " + btnButton.ClientID + "  %>').click()");

divCustomItem.Attributes.Add("onclick", "document.getElementById('" + btnButton.ClientID + "').click()");

在服务器端操作期间,您不需要客户端服务器。

编辑:好的,所以我用更精细的梳齿梳理了你的代码,我发现了这些额外的问题:

  1. 按钮的可见性设置为false,因此甚至无法呈现。如果您希望它可以点击,那么您需要使用css可见性隐藏它。
  2. 什么是ASPxButton?你的意思是巴顿吗?
  3. 由于div中没有​​任何内容,因此其自动高度和宽度将设置为零。
  4. 尝试解决这些问题并发布新代码,如果这仍然无效。