从链接按钮传递参数到javascript

Pass argument from link button to javascript

本文关键字:参数 javascript 链接 按钮      更新时间:2023-09-26

无法从asp LinkButton传递参数到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"实际上传递了LinkButton。然而,我试图从它而不是文本中抓住一个论点。为了进一步的目的,我需要javascript,所以我需要捕获这里的参数。任何帮助将不胜感激!

在后面的代码中您也可以这样做,

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

CommandArgument是严格的服务器端不显示在渲染html,无论如何,你可以添加一个名为"CommandArgument"的属性或任何你想在Page_PreRender然后传递它的绑定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>

问答。

CommandArgument完全是一个服务器端属性,不呈现任何html属性。你不能改变任何按钮的属性然后点击它。好消息是,您可以使用__doPostBack("<%= btn1.UniqueID %>", val);

使用客户端__doPostBack函数来触发postback

请点击链接

参数"this"在java脚本函数中的含义如下:它传递所呈现的Link按钮的DOM对象。这意味着该参数可以获得链接按钮中的任何HTML属性。commandparameter是一个服务器属性,这些服务器属性中的任何一个对于Java脚本都是不可理解的。我不知道什么是你的确切目的与这个id,任何方式只是得到你的链接按钮的id (id生成在HTML,而不是服务器id,如果你使用一个母版页的服务器id和id在渲染的HTML会有所不同),你可以只是调用如下

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