带有内部方法的链接按钮中的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的主要内容,如果未能解决你的问题,请参考以下文章

带有网络链接的单元格中的按钮

带有引导按钮的 Firefox 中的链接无效

在 iOS 上,如何使“链接”或按钮的动态列表调用带有字符串参数的方法?

带有内部 <span> 的 <a> 未触发:IE 8 中的活动状态

如何在 Swift 中的 UITableViewCell 上添加带有单击事件的按钮?

如何从可反应中的单元格呈现按钮触发带有observeEvent的modalBox?