带有内部方法的链接按钮中的javascript
Posted
技术标签:
【中文标题】带有内部方法的链接按钮中的javascript【英文标题】:javascript in link button with inner method 【发布时间】:2014-09-04 13:29:17 【问题描述】:我有 OnClientClick,它询问用户是否确定以用户选择的语言执行此操作。但由于引号混合过多,它不起作用。有人知道怎么做吗?
<asp:LinkButton ID="btnDelete" runat="server" ToolTip="Sil" CssClass="red" OnClick="btnDelete_OnClick" CommandArgument='<%# Item.UId %>'
OnClientClick='<%= "return confirm('" + MULTILANGG("Areyousureyouwanttodeletethis") +"')"%>'><i class="icon-trash bigger-130"></i></asp:LinkButton>
【问题讨论】:
当你说“太多的引号混合”是因为 MULTILANGG("Areyousureyouwanttodeletethis") 也有引号? 是的,正是我的意思 【参考方案1】:您可以在常规脚本标签中定义您的字符串 - 然后您的标签中不需要任何服务器代码:
<script type="text/javascript">
var _areYouSure = "<%= MULTILANGG("Areyousureyouwanttodeletethis") %>";
</script>
<asp:LinkButton ... OnClientClick="return confirm(_areYouSure);" ...></asp:LinkButton>
编辑
这里有一个您可能更喜欢的模式 - 因为您有某种翻译文件,您可以通过存储包含所有翻译的单个对象来组织事情,该对象在页面顶部的 javascript 中定义。它们会被组织在一个地方,然后你可以在你的 javascript 中的任何地方使用它们。
var _resources = <%= JsonConvert.SerializeObject(new
areYouSureDelete = MULTILANGG("Areyousureyouwanttodeletethis"),
welcome = MULTILANGG("Welcome"),
submit = MULTILANGG("Submit"),
cancel = MULTILANGG("Cancel")
) %>;
<asp:LinkButton ... OnClientClick="return confirm(_resources.areYouSureDelete);" ...></asp:LinkButton>
请注意,字符串是用 C# 构建的,因此所有转义都得到了处理,您最终会得到一个有效的 javascript 对象。
【讨论】:
我知道我可以做我不喜欢的事情,如果可能的话。 如果您希望让事情变得更有条理,而不仅仅是一个浮动的变量,则编辑了一个建议。【参考方案2】:你已经接近了!试试这个:
<asp:LinkButton ID="btnDelete" runat="server" ToolTip="Sil" CssClass="red"
OnClick="btnDelete_OnClick" CommandArgument='<%# Item.UId %>'
OnClientClick="return confirm('<%= MULTILANGG("Areyousureyouwanttodeletethis") %>')">
<i class="icon-trash bigger-130"></i></asp:LinkButton>
【讨论】:
得到这个错误;服务器标签不能包含 结构。【参考方案3】:最简单的方法是将其拆分成自己的js函数
函数确认删除() return confirm('')
然后
OnClientClick="confirmDelete()"
【讨论】:
我知道我可以做我不喜欢的事情,如果可能的话。 IMO 更简洁的方法是将所需的所有服务器端数据转储到 JSON 数据包中,然后从 javascript 中将其作为 var 读取。它可以是 src'd(如 jsonp)或作为 js 变量放入页面中。我认为最好尽量减少两种语言混合的表面积。以上是关于带有内部方法的链接按钮中的javascript的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 上,如何使“链接”或按钮的动态列表调用带有字符串参数的方法?
带有内部 <span> 的 <a> 未触发:IE 8 中的活动状态