2013-02-22 33 views
1

在aspx頁面背後的代碼我使用如下:如何添加在aspx.cs頁面的CSS類是指

<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

請注意,格式化你的代碼的時候,我不得不刪除一個額外的''和''。當我把代碼放入SO中時,我認爲這是一個錯字。如果不是,您需要更新您的代碼以反映此更改。 – freefaller 2013-02-22 12:14:58

+0

雅,其正確的是,我只是從我的工作解決方案中粘貼代碼,並且很難在此格式化代碼,所以它可能會錯過任何額外的代碼。因此,PLZ提供了一些可以輕鬆格式化的東西。 – Raj 2013-02-22 12:34:07

+0

如果您要求在SO上輕鬆地設置代碼格式,那麼這不是一個SO提供的工具(我知道) - 有太多的語言和標準。否則,你真的需要確保你的代碼是以一種好的方式寫的 - 所以你和其他人都會很容易地理解這個結構。 – freefaller 2013-02-22 12:49:40

回答

3

cs1將不會直接提供給頁面,因爲它將在DataSource中爲您的grdCreateCustRepoUsersGridView中的每個項目重複。

您需要做的是將其設置爲GridViewRowDataBound事件的一部分。

使用example from MSDN在C#

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"; 
    } 
} 

這是VB.NET(我最初寫的,因爲我沒有注意到你的標題有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控制器的使用經驗非常有限,但是這是基於我對類似<asp:Repeater>控制器的經驗,因此以上代碼未經測試,但希望您能指出正確的方向。)

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"; 
    } 
} 
+0

你應該添加一些解釋... – 2013-02-22 12:43:17

-1

語法:

controlName.CssClass="CSS Class Name"; 

例子:

txtBank.CssClass = "csError"; 
+4

歡迎來到Stack Overflow Kishor。看來你正在用你的名字,工作描述和一個額外的鏈接簽署你的答案。這些已被刪除。 [在Stack Overflow上不鼓勵你的內容](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts)。添加您擁有的鏈接可能會將其標記爲垃圾郵件。只是想提醒你未來可能要避免這種情況。如果您願意,您可以將這些信息添加到您的個人資料。希望有所幫助。對SO有一個很好的留住。 ;) – Bart 2013-07-06 09:25:00

相關問題