如何在aspx.cs页面中添加css类意味着页面后面的代码

时间:2013-02-22 11:59:54

标签: c# asp.net css

在aspx页面中我使用以下内容:

<asp:GridView ID="grdCreateCustRepoUsers">
  <asp:TemplateField>
    <ItemTemplate>
      <div class="cst_checkbox_container1" id="cs1" runat="server">
        <div class="cst_checkbox unselected">
          <label class="checkbox_value">
          <asp:CheckBox ID="chkRead" runat="server" AutoPostBack="true" OnCheckedChanged="chkRead_CheckChanged" /></label>
        </div>
      </div>
    </ItemTemplate>
   </asp:TemplateField>
 </asp:GridView>
在我正在使用的代码中

 cs1.Attributes.Add("class", "some-class");

但是它给出了cs1在当前上下文中不存在的错误。

如何解决此问题?

3 个答案:

答案 0 :(得分:3)

cs1将无法直接显示在页面上,因为DataSource grdCreateCustRepoUsers GridView中的每个项目都会重复该项目。

您需要做的是将其设置为RowDataBound的{​​{1}}事件的一部分。

在C#中使用example from MSDN

GridView

这是VB.NET(我最初写的,因为我没有注意到你在标题中有void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow) { HtmlGenericControl div = (HtmlGenericControl)e.FindControl("cst_checkbox_container1"); div.Attributes["class"] = "some_class"; } }

aspx.cs

(注意,我对Sub grdCreateCustRepoUsers_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles grdCreateCustRepoUsers.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim div as HtmlGenericControl = e.FindControl("cst_checkbox_container1") div.Attributes("class") = "some-class" End If End Sub 控件的体验非常有限,但这是基于我对类似GridView控件的体验。因此上面的代码未经测试,但希望能指出你正确的方向。)

答案 1 :(得分:0)

protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HtmlContainerControl div = e.Row.FindControl("cs1") as HtmlContainerControl;
        div.Attributes["class"] = "some_class";
    }
}

答案 2 :(得分:-1)

语法:

controlName.CssClass="CSS Class Name";

示例:

txtBank.CssClass = "csError";