-1

可能重复:
默认文本框边框样式和宽度

我的页面上有一些文本框,它应该与后面的代码加红色边框。但是呈现垂直滚动条的多行文本框不会从其侧面显示边框。

这是我设置边框的代码:

            foreach (var str in idsRequired)
            {
                var ctrl = (WebControl)FindControl(str);
                if (ctrl != null)
                    ctrl.Style.Add(HtmlTextWriterStyle.BorderColor, "red");
            }

我通过 ID 获取控件并设置它们的边界。问题是:我怎样才能正确地为所有 TextBox 控件加边框?

编辑

我最终将边框样式设置为 2px 并出现右边框。正如你在这里看到的:

在此处输入图像描述

你怎么解释这个?

4

1 回答 1

2

作为建议,尝试将控件的样式委托给 CSS 文件或 ASP.Net 主题。为什么?因为您通常希望在您的网站上重用相同的样式并想象当您想再次更改样式时(在实际应用程序中经常发生这种情况),您将不得不直接编辑您的代码可能会引入一些不希望的错误,因此避免这只是将您的设计与您的代码分开

  • 您可以在 CSS 文件中声明样式并将其导入您的页面:

    使用 CSS

       .txtWithRedBorder
      {
    border-style: solid;
    border-color: #FF0000;
    

    }

    在你的控制

      <asp:TextBox runat="server" Rows="5" TextMode="MultiLine" CssClass="txtWithRedBorder" />
    

    请记住将您的 CSS 文件放在 Theme 文件夹下,并将以下指令添加到页面以自动将所有 CSS 文件导入您的页面

       <%@ Page Theme="Theme1"....
    
  • 或者您可以创建一个 ASP.Net 主题来实现相同的效果:

    <%@ Page Theme="Theme1"....
    
    <asp:TextBox runat="server" Rows="5" SkinID="someSkinID" TextMode="MultiLine" />
    

    在你的皮肤文件中:

    <asp:TextBox runat="server" BorderColor="Red" BorderStyle="Solid" SkinID="someSkinID" />
    

    请记住,您需要指定主题:

    在此处输入图像描述

    这就是结果

    在此处输入图像描述

于 2012-06-20T08:10:56.503 回答