如何在C#代码中使用jQuery dialog()而不是confirm()?

时间:2017-04-10 14:21:17

标签: javascript c# jquery jquery-ui jquery-ui-dialog

我是一名没有进一步了解C#的前端开发人员,所以请原谅我可能有些愚蠢的问题。我目前正在尝试使用jQuery UI Dialog来替换常见的JavaScript alert()和confirm()框。到目前为止,这在前端工作正常,但现在我在其中一个C#页面中找到了这个片段,我不知道将这个从confirm()切换到jQuery对话框()的最佳方法是什么。有什么想法吗?

string delCode = "javascript:"
     + "if ( confirm(\'Are you sure you wish to delete this?\')){ "
     + this.Page.ClientScript.GetPostBackEventReference(this, string.Empty)
     + ";} else { return false; }";

修改 在玩了一下之后我发现,如果没有添加 OnClientClick 属性来阻止单击按钮时回发,它将无法工作。如何从代码中添加此属性 ? btnDelete.Attributes.Add( “的OnClientClick”, “富”); 不适合我。解决这个问题的正确方法是什么?

这就是我想要的东西,到目前为止它只是简单的JS(你可以看到Button的C#片段作为小提琴中HTML内容的注释): https://jsfiddle.net/SchweizerSchoggi/xts01hrx/16/

1 个答案:

答案 0 :(得分:1)

遗憾的是,要在Web-Form中将JavaScript从服务器推送到客户端,您需要利用您必须实现的当前代码。通常,为了避免过多的回发问题,我会强制服务器端控件(如LinkButton)禁用表单提交。

<asp:LinkButton id="lbExample" runat="server" OnClientClick="launch(); return false;" Text="Launch Dialog" />

<script type="text/javascript">
     function launch() {
          $('[data-rel="Example-Modal"]').dialog({
               // Dialog logic.
          }
     }
</script>

这种方式更像是网页或单页应用程序中的传统JavaScript。可以找到基于上述代码的官方文档,这是正确的额外功能here。如上所述,您唯一可以选择动态添加:

ClientScript.RegisterOnSubmitStatement(this.GetType(), "ConfirmSubmit", jQuery); 

您只需按步骤创建按钮,或从后面的代码中找到页面中的按钮。我将使用创建,向您展示我的意思:

public void Page_Load(...)
{
     var lb = new LinkButton();
     lb.OnClientClick = "launch();"
}