1
         <asp:LinkButton ID="lnkprogress" runat="server" class="label label-info"  BackColor="#589FC2"  CommandArgument='<%#Eval("BookingId")%>'  OnClientClick="jk();" >In progress</asp:LinkButton>

このボタンは行ごとにリピーターに存在します。javascriptを使ってコマンド引数の値を取得したいです。返信してください

4

3 に答える 3

4

次のように html5 データ属性を使用して実行できます。

<asp:LinkButton ID="lnkprogress" runat="server" class="label label-info"  BackColor="#589FC2"  data-bookingid='<%#Eval("BookingId")%>'  CommandArgument='<%#Eval("BookingId")%>'  OnClientClick="jk();" >In progress</asp:LinkButton>

次に、次のような JavaScript を使用して取得します。

var lnkProgress = document.getElementById('<%= lnkProgress.ClientID %>');
var bookingID = lnkProgress.getAttribute("data-bookingid");

あなたの lnkProgress は、データバインドされたコントロールの 1 つのような名前付けコンテナー内にあると想定していますが、それgetElementById('<%= lnkProgress.ClientID %>');への参照を取得するのは簡単ではないかもしれません。

于 2013-08-22T07:28:34.120 に答える
3
<asp:LinkButton ID="lnkprogress" runat="server" class="label label-info"  
    BackColor="#589FC2" data-CommandArgument='<%#Eval("BookingId")%>'
    OnClientClick="jk();" >In progress</asp:LinkButton>

Javascript の使用:

document.getElementsId("lnkprogress")[0].getAttribute("CommandArgument")

これをチェックして

jQuery の使用:

$('#lnkprogress').data('CommandArgument');
于 2013-08-22T07:28:43.253 に答える
2

rtpHarry で提案されているように html5 属性を追加し、コントロールを OnClientClick のパラメーターとして送信します。

<asp:LinkButton ID="lnkprogress" runat="server" class="label label-info"  `BackColor="#589FC2"  data-bookingid='<%#Eval("BookingId")%>'  CommandArgument='<%#Eval("BookingId")%>'  OnClientClick="javascript: jk(this);" >In progress</asp:LinkButton>

関数では、コントロール属性を参照するだけです:

function jk(ctrl) {
            var id = ctrl.getAttribute("data-bookingid");
        }

コントロールをパラメーターとして送信することで、リンクボタンが別のコンテナー (つまり、gridview) 内にあるかどうかを心配する必要がなくなります。

于 2017-01-23T14:44:13.737 に答える