重命名动态创建的控件

本文关键字:控件 创建 动态 重命名 | 更新日期: 2023-09-27 18:05:15

在我的项目中,我根据用户输入动态创建面板。每个面板都有一个"删除按钮"。当按钮被点击时,面板应该被移除。但是为了隐藏它/或删除面板,我需要自动命名的button-id,我无法重命名它。

input type="submit" name="ctl00$MainContent$ctl04" value="Copy PDF and Post Script files!"
usesubmitbehavior="false" EnableViewState="true" type="Button" id="645" name="645" />

addButtonCopyFiles[i].Attributes["id"] = templateId[i].Text;
addButtonCopyFiles[i].Attributes["name"] = templateId[i].Text;

这就是我命名它们的方式,但是这个名字不会被替换。我甚至去掉了"runat", "server"属性。

如有任何帮助,不胜感激

重命名动态创建的控件

ControlID属性可以在添加到页面之前显式设置。

替换此代码:

addButtonCopyFiles[i].Attributes["id"] = templateId[i].Text; 
addButtonCopyFiles[i].Attributes["name"] = templateId[i].Text; 
eachPanel[i].Controls.Add(addButtonCopyFiles[i]);

使用下面的代码:

addButtonCopyFiles[i].ID = templateId[i].Text;
eachPanel[i].Controls.Add(addButtonCopyFiles[i]);

在动态创建中,将面板css类设置为包含与按钮相同的动态ID。你没有说你是要删除面板服务器端还是客户端,但我假设隐藏它客户端就足够了。

addButtonCopyFiles[i].Attributes["id"] = templateId[i].Text;
addButtonCopyFiles[i].Attributes["name"] = templateId[i].Text;
dynamicPanel.CssClass = "dynamicPanel_" + templateId[i].Text;
//jQuery button click event
function removePanel(id){
    $(".dynamicPanel_" + id).hide();
}