C# 将用户控件添加到用户控件时丢失样式

C# 将用户控件添加到用户控件时丢失样式,c#,asp.net,css,visual-studio,user-controls,C#,Asp.net,Css,Visual Studio,User Controls,在我的项目中,我试图将按钮集合用户控件添加到基于输入的用户控件中。按钮uc将被添加到许多其他控件中。我遇到的问题是,按钮uc一旦添加到父uc,就会丢失我附加到它的任何css样式。最初,我在父级上有一个面板,在加载页面时会添加按钮uc,然后我会将按钮uc添加到面板: (面板.控件.添加(uc) 这不起作用,按钮的样式丢失。接下来,我尝试将位置设置为按钮uc,并将其直接添加到表单中: static void SetLocation(Usercontrol uc) {uc.Attributes.add

在我的项目中,我试图将按钮集合用户控件添加到基于输入的用户控件中。按钮uc将被添加到许多其他控件中。我遇到的问题是,按钮uc一旦添加到父uc,就会丢失我附加到它的任何css样式。最初,我在父级上有一个面板,在加载页面时会添加按钮uc,然后我会将按钮uc添加到面板:

(面板.控件.添加(uc)

这不起作用,按钮的样式丢失。接下来,我尝试将位置设置为按钮uc,并将其直接添加到表单中:

static void SetLocation(Usercontrol uc) {uc.Attributes.add("style","left:425px;top:420px;"); }   
public void SetPage() { button = (uc)LoadControl(button.ascx); SetLocation(buttonuc); this.Controls.Add(buttonuc); }

但是,这也不起作用,它甚至没有正确定位控件。我的样式表已经添加到父uc,并且要添加的按钮uc在该表上有它的样式。我不想手动将按钮添加到每个uc父uc。谢谢您的帮助。我确定我只是缺少一些明显的东西,但我还没有找到n搜索中出现类似问题。谢谢。

一般来说,将样式与标记分开是一种很好的做法。这使得维护更容易,也避免了搜索某个元素与预期位置相差一个像素的原因(例如,类似问题可能会令人恼火)


如果为按钮设置CssClass属性并在css文件中为类设置样式,是否存在相同的问题?

按钮的样式在css文件中设置。一旦它们添加到表单中,按钮的所有样式都将丢失。如果我将它们添加到预先存在的面板中,至少它们将位于正确的位置,但是没有样式。是否使用ID选择器引用按钮或类?当按钮添加到页面中时,ID可能会更改以确保唯一性在按钮uc标记中,我基本上有:ID=“btnAdd”CssClass=“ButtonStyle”……我能想到的唯一一件事是,另一种样式正在覆盖CSS文件中所需的样式。我会处理Firebug,看看你是否能想出一个更具体的选择器来定位按钮。例如,你可以使用“parentelement.class”试图创建一个比可能覆盖它的任何内容都更具体的选择器。我发现了问题,是该死的默认Microsoft母版页样式覆盖了我所有控件的样式,而不仅仅是按钮。很抱歉,让我死而复生,我已经有一段时间没有访问该网站了。不要依赖于默认母版页,永远不要忘记。