Asp.net Repeater OnClientClick()不会触发

时间:2014-06-10 13:48:55

标签: c# asp.net

我正在使用转发器控件,并添加了以下代码段来显示其中一列。我试图在Eval("Comments")设置的警告框中显示Linkbutton Text。我已经检查了This问题但没有运气。

<asp:LinkButton ID="lnkComments" OnClientClick='<%# "CommentPopup(" + Eval("Comments") + ");" %>' runat="server" Text='<%#Eval("Comments") %>' ></asp:LinkButton>

JS代码

Function CommentPopup (element) 
{ 
   alert(element); // For testing purpose
}

单击链接按钮时,不会触发该功能。语法有什么问题吗?

Aaprt从中可以传递像OnClientClick='return CommentPopup(this);'这样的linkbutton控件,然后使用this.textthis.val()访问其文本吗?

更新:Chrome控制台显示

  

未捕获的SyntaxError:意外的标识符

2 个答案:

答案 0 :(得分:1)

&#34;作用&#34;应该是&#34;功能&#34;。打开浏览器的开发人员工具,如果您遇到语法错误,它们会显示在那里。 关于第二个问题,是的,它只是不使用&#34; this.val()&#34;,因为val是一个jQuery方法,而不是本机JavaScript。

答案 1 :(得分:1)

您需要将注释包装在引号中。

在我的经验中,当转义引号时,标记往往会中断,但请尝试下面的代码。

<asp:LinkButton ID="lnkComments" OnClientClick='<%# "CommentPopup(\"" + Eval("Comments") + "\");" %>' runat="server" Text='<%#Eval("Comments") %>' ></asp:LinkButton>

如果它仍然存在问题,您可能需要使用string.format调整字符串的构建,或者在代码隐藏中创建一个公共函数,该函数将注释作为参数,并输出所需的字符串。