将样式应用于转发器控件

时间:2013-05-22 05:35:43

标签: asp.net dom repeater

我需要应用样式并突出显示已排序的标题颜色。 排序是在rptMyTable_ItemCommand事件中处理的。我不能使用gridview,因为显示数据的布局不是常规表。 在javascript中我们有类似的东西 document.getElementById('lbCol1Header')。parentNode.style ='sortedColumnCSS' 如何在codebehind中做到这一点?

  <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>

2 个答案:

答案 0 :(得分:1)

在设计页面中:

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

for Linkbutton:

<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

答案 1 :(得分: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";