开发者问题收集

如何在 asp.net 中使用 javascript 获取命令参数的值

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

此按钮存在于每一行的中继器中。我想使用 javascript 获取命令参数的值。请回复

3个回答

您可以使用 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 %>'); 那样容易获取对它的引用。

rtpHarry
2013-08-22
<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');
Bhavik
2013-08-22

按照 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");
        }

通过将控件作为参数发送,您不必担心 linkbutton 是否在另一个容器内,即 gridview。

9988ScooterGirl
2017-01-23