在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
在当前上下文中不存在的错误。
如何解决此问题?
答案 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";