我想在asp.net代码隐藏中复制一个控件。
在我的代码中:
HtmlGenericControl divRowHeader = new HtmlGenericControl("div");
divRowHeader.Style.Add(HtmlTextWriterStyle.Width, "323px");
divRowHeader.Style.Add(HtmlTextWriterStyle.MarginTop, "2px");
divRowHeader.Style.Add(HtmlTextWriterStyle.MarginLeft, "45px");
divRowHeader.Style.Add(HtmlTextWriterStyle.Height, "30px");
divRowHeader.Style.Add("border-top", "solid 3px lightgray");
divRowHeader.Style.Add("border-bottom", "solid 3px lightgray");
divRowHeader.Style.Add("border-right", "solid 3px lightgray");
divRowHeader.Style.Add("border-left", "solid 3px lightgray");
divTabRessources.Controls.Add(divRowHeader);
divTabInterim.Controls.Add(divRowHeader);
我想将相同的控件添加到2个不同的div,但是现在它只是移动控件。是否有一个复制控件并为其提供另一个唯一ID的函数,因此没有冲突?
答案 0 :(得分:3)
答案 1 :(得分:1)
回答您关于如何"分解"的问题。您只需从尝试重用的代码中创建一个方法。 Visual Studio可以很好地简化它。它基本上可以为您完成大部分工作。突出显示要移动到方法中的代码,右键单击它,然后转到Refactor,然后转到Extract Method。给它一个名字,它会为你创建一个功能。做出调整,你就会好起来。这是完成版本的样子:
protected HtmlGenericControl CreateDivRowHeader(string id)
{
HtmlGenericControl divRowHeader = new HtmlGenericControl("div");
divRowHeader.Style.Add(HtmlTextWriterStyle.Width, "323px");
divRowHeader.Style.Add(HtmlTextWriterStyle.MarginTop, "2px");
divRowHeader.Style.Add(HtmlTextWriterStyle.MarginLeft, "45px");
divRowHeader.Style.Add(HtmlTextWriterStyle.Height, "30px");
divRowHeader.Style.Add("border-top", "solid 3px lightgray");
divRowHeader.Style.Add("border-bottom", "solid 3px lightgray");
divRowHeader.Style.Add("border-right", "solid 3px lightgray");
divRowHeader.Style.Add("border-left", "solid 3px lightgray");
divRowHeader.ID=id;
return divRowHeader;
}
//now you can reuse the code
divTabRessources.Controls.Add(CreateDivRowHeader("control1"));
divTabInterim.Controls.Add(CreateDivRowHeader("control2"));