Facebox插件onClick做点什么

时间:2012-09-16 13:04:31

标签: javascript jquery asp.net database

我正在使用facebox plugin获取我的链接,但我也想在点击上做点什么。

enter image description here

我尝试过onclick事件: (我使用文字来做,也许这就是问题)

litWorkplaceButton.Text = "<a class='google-button' href=\"#dialog-form\" id='btnSaveForLater' rel='facebox' onclick=\"addSaveList\" runat='server'>Save for later</a>";

但出现以下错误:

'addSaveList' is undefined

我将我的方法定义为void protected addSaveList(){}

我只是想将Project的ID保存在表格中,所以我需要在页面后面编码!

我尝试使用<asp:LinkButton>的文字(在代码后面)和正常,错误结果显示我:

<asp:LinkButton ID="searchLinkk" runat="server" onclick="searchLink_Click">Search</asp:LinkButton>

<a id="CPHcontent_searchLinkk" href="javascript:__doPostBack(&#39;ctl00$CPHcontent$searchLinkk&#39;,&#39;&#39;)">Search</a>

通常将其转换为带有href =“javascript:__ doPostBack”的标签

但我必须使用文字,因为只有在发生事件(用户已登录)时我才显示此按钮。

还有其他办法吗,或者我做错了什么?

3 个答案:

答案 0 :(得分:2)

此处的问题是,您通过a的{​​{1}}属性插入页面的Literal标记无法识别为服务器控件。 Text属性被识别为javascript事件。

如果用户未登录,您仍然可以使用OnClick并在其上设置LinkButton属性。在代码后面的Visible方法中添加类似的内容:

Page_Load

答案 1 :(得分:1)

您的问题是您误解了Literal控件的用途。它仅用于将text / html注入页面,它不能用于动态添加服务器控件。为此,您应该使用占位符控件。

您收到'addSaveList' is undefined错误,因为当浏览器看到“onclick”属性时(由于很多原因不应该使用该属性),它会尝试将其绑定到名为addSaveList的全局Javascript方法,这不存在。

答案 2 :(得分:0)

是的,不要使用内联JS,它的错误语义,它总是会回来困扰你。相反,将脚本放在一个单独的脚本文件中,在标题中链接到它,并让它包含它。

$(document).ready(function() {

   // Put your method here

});
祝你好运,
-Brian