2013-05-22 115 views
0

我需要應用的風格,並突出其排序.. 排序在rptMyTable_ItemCommand事件處理..我不能使用GridView控件作爲顯示數據的佈局頭coloumn將樣式到​​不是常規表。我們有類似 document.getElementById('lbCol1Header')。parentNode.style ='sortedColumnCSS' 如何在代碼隱藏中做到這一點?在中繼器控制

<table border="0" cellpadding="5" cellspacing="0" width="100%" class="myCSS"> 
    <asp:Repeater ID="rptMyTable" runat="server" OnItemCommand="rptMyTable_ItemCommand"> 
     <HeaderTemplate> 
      <tr style="font-weight: bolder"> 
       <td> 
        <asp:LinkButton ID="lbCol1Header" Text="Col1" runat="server" CommandName="sortCol1" /> 
       </td> 
       <td> 
        <asp:LinkButton ID="lbCol2Header" Text="Col2" runat="server" CommandName="sortCol2" /> 
       </td> 
       <td> 
        <asp:LinkButton ID="lbCol3Header" Text="Col3" runat="server" CommandName="sortCol3" /> 
       </td> 
       <td> 
        <asp:LinkButton ID="lbCol4Header" Text="Col4" runat="server" CommandName="sortCol4" /> 
       </td> 
       <td> 
        <asp:LinkButton ID="lbCol5Header" Text="Col5" runat="server" CommandName="sortCol5" /> 
       </td> 
       <td> 
        <asp:LinkButton ID="lbCol6Header" Text="Col6" runat="server" CommandName="sortCol6" /> 
       </td>      
       <td> 
        &nbsp; 
       </td> 
       <td> 
        &nbsp; 
       </td> 
      </tr> 
     </HeaderTemplate> 
     <ItemTemplate> 
//Table Data......with nested tables and divs 
. 
. 
. 
. 
. 
     </ItemTemplate> 
    </asp:Repeater> 
<tr style="font-weight: bolder"> 
    // doing paging operations here... 
</tr> 
</table> 
+0

嘗試處理'ItemDataBound'事件 – mshsayem

+0

感謝mshsayem,但我如何獲得對html的引用​​..它不是服務器控件..? – Srikanth

+0

現在不能考慮一件事情,除了:你可以讓這些'td'服務器控件('runat = server')並給它們一些id;那麼你可以通過'e.Item.FindControl(「所需的td>」的id)'獲得一個列的引用。另一個駭人的方式可能是:設置一些隱藏的字段,並使JavaScript來完成工作(在文檔加載上)。 – mshsayem

回答

1

在設計頁面:

<tr class='<%# StyleSheet(DataBinder.Eval(Container.DataItem, "Y"))%>'> 

爲LinkBut​​ton的:

<asp:LinkButton ID="lbCol1Header" Text="Col1" runat="server" CommandName="sortCol1" CssClass='<%# StyleSheet(DataBinder.Eval(Container.DataItem, "Y"))%>' /> 

代碼頁:

public static string StyleSheet(object objText1) 
{ 
    string val = string.Empty; 
    if (objText1.ToString() == "Y") 
    { 
     val = "trbind"; 
    } 
    return val; 
} 

這是應用樣式的方法之一tr標籤在運行時基於數據。類似的你也可以嘗試標籤。

在樣式表中寫入樣式trbind

0

我可以在rptMyTable_ItemCommand事件中使用.CssClass屬性。

lbCol1Header.CssClass = "sortedColumnCSS"; 

如果你想應用css類,你應該給ID並添加runat =「server」。

<td ID="tdCol1Header" runat="server"> 
    <asp:LinkButton ID="lbCol1Header" Text="Col1" runat="server" CommandName="sortCol1" /> 
</td> 

並從您的代碼中添加css類。

tdCol1Header.Attributes("class") = "CssClass"; 
+0

它是否將樣式應用於表格單元格或鏈接按鈕控件? – Srikanth

+0

要將樣式適用於表格,您可以爲表格(或任何HTML元素)提供一個ID並在服務器上運行。每個有ID並在服務器上運行的控件都可以從後面的代碼中訪問。看到我更新的答案。 :) –

+0

謝謝,是否有任何其他方法,而不是每個標題單元應用runat = server並應用樣式?有很多列,想知道是否有其他方式? – Srikanth