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 将位于一个命名容器中,例如数据绑定控件之一,因此它可能不像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>

在您的函数中,只需引用 control 属性:

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

通过将控件作为参数发送,您不必担心链接按钮是否位于另一个容器(即gridview)中。

于 2017-01-23T14:44:13.737 回答