2017-06-28 6 views
-1

マスターページのすべてのテキストボックスにCssClass = "form-control"を設定したい どうすればよいですか?背後にあるマスターページのコードでマスターページのaspコントロールにブートストラップコントロールを追加して、すべてのasp:textboxに反映させるには?

+0

すべてのテキストボックスの 'CssClass'を' form-control'に設定するのはどうですか? – VDWWD

+0

何を試しましたか?あなたは何を探しましたか?あなたの質問は、より良い答えを得るための詳細を提供する必要があります。私はASP.NETに精通していませんが、テンプレートを作成したりHTMLコードを再利用するための方法があるはずですが、入力がたくさんある場合は十分柔軟ではないようです。各入力にそのクラスを設定することはあまり悪くないでしょう。デフォルトのクラスと個別の入力に追加するクラスを組み合わせるのは難しいでしょう。また、いくつかのグローバル設定がクラスを追加している場合、後でクラスがどのようにあなたの要素に適用されているか把握するのが難しくなります。 –

答えて

0

あなたは次の操作を行うことができ、マスターページのASPXで

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
//added next line 
using System.Web.UI.HtmlControls; 

namespace WebApplication1 
{ 
    public partial class Site1 : System.Web.UI.MasterPage 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      //https://stackoverflow.com/questions/23710337/add-class-into-html-tag-by-jquery-in-asp-net-c-sharp 
      //https://www.experts-exchange.com/questions/25280443/How-to-iterate-through-all-controls-with-masterpage.html 
      var x = new object(); 
      foreach (Control c in Controls) 
      { 
       foreach (Control masterControl in Page.Controls) 
       { 
        if (masterControl is MasterPage) 
        { 
         foreach (Control formControl in masterControl.Controls) 
         { 
          if (formControl is HtmlForm) 
          { 

           foreach (Control cont in formControl.Controls) 
           { 
            if (cont is TextBox) 
            { 
             ((TextBox)cont).Attributes["class"] = "form-control"; 
            } 
           } 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
} 

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="WebApplication1.Site1" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      <asp:TextBox runat="server" ID="textbox1" /> 
      <asp:TextBox runat="server" ID="textbox2" /> 
      <asp:TextBox runat="server" ID="textbox3" /> 
      <asp:TextBox runat="server" ID="textbox4" /> 
      <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
      </asp:ContentPlaceHolder> 
     </div> 
    </form> 
</body> 
</html> 
0

は自分のコントロール上のCssClassを追加し、これを試してみてください、それです:

<asp:TextBox CssClass="form-control" runat="server"></asp:TextBox> 

あなたのブートストラップがあなたのマスタページスタイルの頭部セクションのリファレンスを持っていることを確認してください:

<head runat="server"> 
    <title></title> 
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> 

    <%--Added Bootstrap Style Here--%> 
    <link href="~/Styles/bootstrap.css" rel="stylesheet" type="text/css" /> 

    <asp:ContentPlaceHolder ID="HeadContent" runat="server"> 
    </asp:ContentPlaceHolder> 
</style> 
関連する問題