我正在使用facebox plugin获取我的链接,但我也想在点击上做点什么。
我尝试过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('ctl00$CPHcontent$searchLinkk','')">Search</a>
通常将其转换为带有href =“javascript:__ doPostBack”的标签
但我必须使用文字,因为只有在发生事件(用户已登录)时我才显示此按钮。
还有其他办法吗,或者我做错了什么?
答案 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
});
祝你好运,