0

我需要应用样式并突出显示已排序的标题列。排序是在 rptMyTable_ItemCommand 事件中处理的。我不能使用 gridview,因为显示数据的布局不是常规表格。在 javascript 中,我们有类似 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>
4

2 回答 2

1

在设计页面中:

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

对于链接按钮:

<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在运行时根据数据应用 in 标签样式的方法之一。类似地,您也可以尝试使用标签。

在样式表中写trbind样式。

于 2013-05-22T06:08:27.127 回答
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";
于 2013-05-22T05:50:17.020 回答