2

我有一个中继器控件,其中包含一个LinkButton。使用命令参数,我在代码隐藏中执行必要的功能。我想在单击 aLinkButton后将其前景色变为红色,如果在 中单击另一个LinkButtonRepeater我想将先前单击的前色关闭LinkButton为黑色,将最近单击的前色关闭为红色。我怎么做?这是我的代码:

<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
        <ul>
    </HeaderTemplate>
    <ItemTemplate>
            <li>
                <asp:LinkButton ID="LinkButton1" runat="server" Text='<%#Eval("divisionlabel") %>'
                                OnCommand="LinkButton1_Command" CommandName="MyPendingApps" CommandArgument='<%#Eval("divisionid") %>'>
                </asp:LinkButton>
            </li>
    </ItemTemplate>
    <FooterTemplate>
            <li>
                <asp:LinkButton ID="LinkButton_InsReqList" runat="server" OnCommand="LinkButton_InsReqList_Command"
                                CommandName="InspectionRequests">Inspection Requests List</asp:LinkButton>
            </li>
        </ul>
    </FooterTemplate>
</asp:Repeater>
4

2 回答 2

1

OnClick="LinkButtons_Click"在表单上的每个链接按钮中添加一个

<asp:Repeater ID="Repeater1" runat="server">
    <HeaderTemplate>
        <ul>
    </HeaderTemplate>
    <ItemTemplate>
            <li>
                <asp:LinkButton ID="LinkButton1" runat="server" Text='<%#Eval("divisionlabel") %>'
                                OnCommand="LinkButton1_Command" CommandName="MyPendingApps" CommandArgument='<%#Eval("divisionid") %>' OnClick="LinkButtons_Click">
                </asp:LinkButton>
            </li>
    </ItemTemplate>
    <FooterTemplate>
            <li>
                <asp:LinkButton ID="LinkButton_InsReqList" runat="server" OnCommand="LinkButton_InsReqList_Command"
                                CommandName="InspectionRequests" OnClick="LinkButtons_Click">Inspection Requests List</asp:LinkButton>
            </li>
        </ul>
    </FooterTemplate>
</asp:Repeater>

该函数的代码是:

protected void LinkButtons_Click(object sender, EventArgs e)
{
    LinkButton link=(LinkButton)sender;
    if (link.ID == "yourDesiredID1")
    {
           link.ForeColor=System.Drawing.Color.Red; 
    }
    else
    {
           link.ForeColor=System.Drawing.Color.YourDefaultdColor; 
    }
    if (link.ID == "yourDesiredID2")
    {
           link.ForeColor=System.Drawing.Color.Yellow; 
    }
    else
    {
           link.ForeColor=System.Drawing.Color.YourDefaultColor; 
    }
    if (link.ID == "yourDesiredID3")
    {
           link.ForeColor=System.Drawing.Color.Blue; 
    }
    else
    {
           link.ForeColor=System.Drawing.Color.YourDefaultColor; 
    }
}
于 2012-11-25T16:23:41.983 回答
0

我会在 ViewState 中存储来自 ItemCommand 事件服务器端的唯一标识符(值、Id、ItemIndex 等),然后在 ItemDataBound 事件中检查唯一标识符是否等于 ViewState 中的值,如果它确实应用了更改的类文字颜色为红色,如果不进行绑定。

显然这里有一些你需要考虑的细节,但它是一个开始。

于 2012-11-22T16:05:56.177 回答