繁体   English   中英

将参数从链接按钮传递到javascript

[英]Pass argument from link button to javascript

无法将参数从asp LinkBut​​ton传递给javascript函数,而我是从OnClientClick调用它的。

这就是我到目前为止

<asp:LinkButton ID="LinkButton2" runat="server" Text='<%# Bind("Subject") %>' OnClientClick ="OpenViewMeeting(this); return false;" CommandName="Id" CommandArgument='<%# Bind("Id") %>' Width ="30%"/>

Javascript功能

<script type="text/javascript">
    function OpenViewMeeting(Ob) {
        var Id = Ob.CommandArgument;
        alert(Id);
        return false;
    }
    </script>

我可以使用“ ob.text”获取按钮的文本,因此我知道“ this”实际上通过了LinkBut​​ton。 但是,我试图从中而不是从文本中获取论据。 我需要javascript来实现其他目的,所以我需要在这里捕捉参数。 任何帮助将不胜感激!

在后面的代码中,您也可以执行此操作

LinkButton2.Attributes.Add("onclick","javascript:return OpenViewMeeting("+LinkButton2.ID+")");

CommandArgument严格是服务器端的,并且不会显示在呈现的html中,您如何可以在“ Page_PreRender”中添加名为“ CommandArgument”的属性或所需的任何内容,然后将绑定的CommandArgument值传递给它,如下所示:

LinkButton lb = Repeater1.Controls[index of the reapeater item].FindControl("LinkButton2") as LinkButton;
lb.Attributes.Add("CommandArgument", lb.CommandArgument);

如果CommandArgument成为html属性,则可以尝试如下操作:

<script type="text/javascript">
function OpenViewMeeting(Ob) {
    var Id = Ob.getAttribute("CommandArgument");
    alert(Id);
    return false;
}
</script>

否则,请检查您的html源,并查看其外观并检测您的属性名称。

按照问答。

CommandArgument完全是服务器端属性,不呈现任何html属性。 因此,您无法更改任何按钮的属性并单击它。 好消息是您可以使用__doPostBack("<%= btn1.UniqueID %>", val);使用客户端__doPostBack函数触发postback __doPostBack("<%= btn1.UniqueID %>", val);

请链接。

Java脚本函数中参数“ this”的含义如下。 它传递呈现的“链接”按钮的DOM对象。 这意味着此参数可以在链接按钮中获取任何HTML属性。 CommandArgument是服务器属性,Java脚本无法理解这些服务器属性中的任何一个。 我不知道您使用此ID的确切目的是什么,只是为了获取链接按钮的ID(以HTML生成的ID,而不是Server ID的任何方式),如果您使用母版页,则呈现的HTML中的服务器ID和ID会有所不同),您可以按以下方式致电

<script>
        function OpenViewMeeting(thisObj) {
            alert(thisObj.id);
        }
 </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM