C# 带有内部方法的链接按钮中的javascript
我有一个OnClientClick,它询问用户是否确定要使用用户选择的语言来执行此操作。但是由于太多的引用和混合,它不起作用。有人知道怎么做吗C# 带有内部方法的链接按钮中的javascript,c#,javascript,asp.net,quotes,C#,Javascript,Asp.net,Quotes,我有一个OnClientClick,它询问用户是否确定要使用用户选择的语言来执行此操作。但是由于太多的引用和混合,它不起作用。有人知道怎么做吗 <asp:LinkButton ID="btnDelete" runat="server" ToolTip="Sil" CssClass="red" OnClick="btnDelete_OnClick" CommandArgument='<%# Item.UId %>' OnClientClick='<%= "return c
<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>
最简单的方法是将其拆分为自己的js函数 函数confirmDelete(){ 返回确认(“”) } 然后
你接近了!试试这个:
<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>
您可以在外部的正则脚本标记中定义字符串,这样您就不需要在标记中使用任何服务器代码:
<script type="text/javascript">
var _areYouSure = "<%= MULTILANGG("Areyousureyouwanttodeletethis") %>";
</script>
<asp:LinkButton ... OnClientClick="return confirm(_areYouSure);" ...></asp:LinkButton>
var _areYouSure=“”;
编辑
这里有一个你可能更喜欢的模式——因为你已经有了某种翻译文件,你可以通过在页面顶部存储一个包含所有翻译的对象(用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>
var\u资源=;
请注意,字符串是在C#中构建的,因此所有转义都会得到处理,最终会得到一个有效的javascript对象。当您说“太多引号混合”时,是因为MULTILANGG(“AreyouSureYouWantDeleteThis”)也有引号?是的,这正是我所指的错误;服务器标记不能包含结构。我知道我可以做我不喜欢做的事情,如果可能的话。如果你想让事情比仅仅一个变量漂浮在那里更有条理,请使用建议进行编辑。我知道我可以做我不喜欢做的事,如果可能的话,IMO更干净的方法是将所需的所有服务器端数据转储到JSON数据包中,并将其作为变量从javascript中读取。它可以是src'd(类似于jsonp),也可以作为js变量放入页面中。我认为最好尽量减少两种语言混合的面积。
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>