c#
  • html
  • asp.net
  • gridview
  • 2017-02-14 88 views 0 likes 
    0

    我正在使用ASP.NET GridView。
    它裏面,我有一個模板列如下:如何將屬性添加到GridView中的渲染td?

    <asp:TemplateField HeaderText="Nº Despesa" SortExpression="NumeroDespesa"> 
        <ItemTemplate> 
         <asp:Label ID='lblNumeroDespesa' runat="server" Text='<%#Bind("NumeroDespesa") %>' /> 
        </ItemTemplate> 
        <HeaderStyle CssClass="gv-col-numerodespesa" /> 
        <ItemStyle CssClass="gv-col-numerodespesa text-center" /> 
    </asp:TemplateField> 
    

    此代碼獲取客戶端呈現爲:

    <td class="gv-col-numerodespesa text-center"> 
        <span id="ContentPlaceHolder_Site_gvDespesa_lblNumeroDespesa_0">00403-03-01</span> 
    </td> 
    

    我想補充一個數據標題上TD,像此:

    <td class="gv-col-numerodespesa text-center" data-title="Nº Despesa"> 
        <span id="ContentPlaceHolder_Site_gvDespesa_lblNumeroDespesa_0">00403-03-01</span> 
    </td> 
    

    我該如何實現它?

    我的最終目標是實現NoMoreTables

    回答

    1

    有一種方法,但你可能不會喜歡它。無論如何,我不知道。

    您可以訂閱RowDataBound事件以及單元格的處理程序集屬性。你需要知道列的索引。假設索引3:

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
        if (e.Row.RowType == DataControlRowType.DataRow) 
        { 
         e.Row.Cells[3].Attributes.Add("data-title", "Nº Despesa"); 
        } 
    } 
    
    +0

    使用Cells集合是最後一招,我想盡量避免這樣做。 – Lucas

    +1

    @盧卡斯,是的,我同意,因此「不會喜歡它」的評論。真的沒有其他服務器端的方式。只有js接近,我不確定那些更好 – Andrei

    +0

    甚至沒有一些黑客被放在PreRender上?就像用於使GridView分別渲染thead和tfoot的那個一樣? – Lucas

    相關問題