【问题标题】:Losing styles when adding a User Control to a User Control将用户控件添加到用户控件时丢失样式
【发布时间】:2013-07-30 02:01:03
【问题描述】:

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

(panel.controls.add(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 父级。感谢您的任何帮助。我确定我只是遗漏了一些明显的东西,但我还没有在搜索中遇到类似的问题。谢谢。

【问题讨论】:

    标签: c# asp.net css visual-studio user-controls


    【解决方案1】:

    一般来说,将样式与标记分开是一种很好的做法。这使维护变得更容易,并且还使您不必搜索其中一个元素出现在距离您期望的位置一个像素的原因(例如......类似的问题可能会令人恼火)。

    如果您为按钮设置 CssClass 属性并在 css 文件中为该类设置样式,您是否会遇到同样的问题?

    【讨论】:

    • 按钮的样式在 css 文件中设置。一旦它们被添加到表单中,按钮的所有样式都会丢失。如果我将它们添加到预先存在的面板中,至少它们会在正确的位置,但是没有样式。
    • 您是在使用 ID 选择器来引用按钮还是类?当按钮添加到页面时,ID 可能会更改以确保唯一性,因此 ID 选择器将不起作用。
    • 在按钮 uc 标记中,我基本上有: ID="btnAdd" CssClass="ButtonStyle"......
    • 我唯一能想到的是另一种样式正在覆盖您的 CSS 文件中所需的样式。我会弄乱Firebug,看看你是否能想出一个更具体的选择器来定位按钮。例如,您可以使用“parentelement .class”来尝试创建一个比任何可能覆盖它的选择器更具体的选择器。
    • 我发现了问题,这是该死的默认 Microsoft 母版页样式,它覆盖了我所有控件的样式,而不仅仅是按钮。抱歉,为了起死回生,我已经有一段时间没上这个网站了。不要依赖默认的母版页,永不忘记。
    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多