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

时间:2015-09-02 17:14:37

标签: javascript c# html asp.net .net

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

这是我到目前为止所拥有的

<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用于进一步的目的,所以我需要在那里找到参数。任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:2)

在代码背后你也可以这样做,

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

答案 1 :(得分:1)

CommandArgument是严格的服务器端,并不会在渲染的html中显示,你怎么能添加一个名为&#34; CommandArgument&#34;或者在Page_PreRender中你想要的任何内容,然后传递绑定的CommandArgument值,如下所示:

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

答案 2 :(得分:0)

如果 storeHours = storeHours.Replace("<p>", "<span>").Replace("</p>", "</span>"); 成为html属性,您可以尝试这样的事情:

CommandArgument

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

答案 3 :(得分:0)

根据This问答。

CommandArgument完全是服务器端属性,不呈现任何html属性。因此,您无法更改任何按钮的属性并点击它。好消息是,您可以使用postback

使用客户端__doPostBack函数触发__doPostBack("<%= btn1.UniqueID %>", val);
  

请链接。

答案 4 :(得分:0)

参数的含义&#34;这&#34;在你的java脚本函数中如下。它传递渲染的链接按钮的DOM对象。这意味着此参数可以在链接按钮中获取任何HTML属性。 CommandArgument是一个服务器属性,Java脚本无法理解这些服务器属性中的任何一个。我不知道你使用这个id的确切目的是什么,只要获取你的链接按钮的ID(用HTML生成的ID,而不是服务器ID,如果你使用主页面的服务器ID和ID)呈现的HTML会有所不同),您可以按如下方式调用

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