如何在 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