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 に答える