0

我想做的是:

我有一张桌子(中继器),它向我展示了各种会话。在每个会话中,我都可以计算您的费用。为此,我有 linkBut ​​ton lnkGenerate。费用生成后自动改变图像,变为lnkDelete。(这是在 ascx.cs 中完成的)

<asp:Repeater ID="rpt1" runat="server" EnableViewState="false" OnItemCommand="rpt1_ItemCommand">
    <HeaderTemplate>
        <table cellpadding="4" cellspacing="0" width="100%">
            <tr style="color: Black; white-space: nowrap;">
                <th style="width: 90%">
                    Session
                </th>
                <th style="width: 10%;">
                    Session Value
                </th>
                <th style="white-space: nowrap;">
                </th>
            </tr>
    </HeaderTemplate>

    <ItemTemplate>
        <tr id="row" runat="server">
            <td align="left" style="white-space: nowrap">
                    <%# ((Session)Container.DataItem).Name %>
            </td>
            <td align="center">
                <%# ((Session)Container.DataItem).ValueSession > 0 ? ((Session)Container.DataItem).ValueSession.ToString() : "-" %>
            </td>
            <td style="white-space: nowrap;">
                <asp:LinkButton ID="lnkGenerate" runat="server" ToolTip="Generate" CausesValidation="false" OnClientClick="showImg(this);"
                    CommandName="generate" Visible='<%# ((Session)Container.DataItem).ValueSession == 0 && !this.IsBlock %>'>
                    <asp:Image ID="imgGenerate" runat="server" ToolTip="Generate" SkinID="imgGenerateAuto" />
                </asp:LinkButton>
                <asp:LinkButton ID="lnkDelete" runat="server" ToolTip="Delete" CausesValidation="false"
                    CommandName="delete" Visible='<%# ((Session)Container.DataItem).ValueSession > 0 && !this.IsBlock %>'>
                    <asp:Image ID="imgDelete" runat="server" ToolTip="Delete" SkinID="imgDeleteAuto" />
                </asp:LinkButton>
            </td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>

我想要的是:

单击图像生成成本,它会变为“加载”的图像,然后计算它们,转到lnkDelete。我试过使用 javascript,但是,每行都有一个特定的 ID,我无法获得。

建议?

4

1 回答 1

1

在尝试了我之前提出的解决方案之后,我决定从头开始重写答案。我在这里在 VS 上创建了一个新项目并测试了下面的代码。这是您所拥有的简化版本,但它会按预期工作:

1) 请注意,您将不再需要附加 OnClientClick 事件。

2) 只需将 CssClass 定义到您的 LinkBut​​ton 并将处理程序附加到单击事件。

<head runat="server">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            $(".linkButton").on("click", function (e) {
                // As I don't have any code running on the code behind, 
                // it would replace the image and return to the original 
                // one pretty quick, so I'm stopping the postback.
                e.preventDefault();                     

                $(this).find("img").attr("src", "http://www.bedlingtonterriersfc.com/wp-content/uploads/2013/06/ball-50x50.png");

                return true;
            });
        }); 
    </script>
</head>

<asp:Repeater ID="rptr" runat="server" onitemcommand="rptr_ItemCommand">
    <ItemTemplate>
        <asp:LinkButton CssClass="linkButton" CommandName="cmd1" runat="server">
            <asp:Image runat="server" AlternateText="" ImageUrl="http://static.miniclipcdn.com/images/awards/store/32_50.png" />
        </asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>
于 2013-07-17T09:41:46.603 回答