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

时间:2013-08-22 07:23:14

标签: javascript asp.net

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

此按钮存在于每行的转发器中。我想使用javascript.please回复获取命令参数的值

3 个答案:

答案 0 :(得分: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 %>');那样容易获得对它的引用。

答案 1 :(得分: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")

Check this

使用jQuery:

$('#lnkprogress').data('CommandArgument');

答案 2 :(得分: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。