javascript - 如何在 C# 代码中使用 jQuerydialog() 而不是confirm()?

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

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

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","foo"); 对我不起作用。解决这个问题的正确方法是什么?

这就是我想要的,到目前为止它只是简单的 JS(您可以在 Fiddle 中的 HTML 内容上方看到按钮的 C# 代码片段作为注释): https://jsfiddle.net/SchweizerSchoggi/xts01hrx/16/

最佳答案

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

<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); 

您只需以编程方式创建按钮或从后面的代码中找到页面中的按钮即可。我将使用 create 来向您展示我的意思:

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

关于javascript - 如何在 C# 代码中使用 jQuerydialog() 而不是confirm()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43325709/

相关文章:

javascript - jQuery UI Sortable - 被动项目的更改事件

php - Jquery 可排序连接列表 + PHP/MySQL

javascript - 在 AngularJS 表达式中使用 "&&"时,Thymeleaf 解析错误

javascript - 单击或按下 Enter 键时触发事件 [JavaScript]

javascript - 单击按钮时隐藏 div

c# - 将Json Property的Property反序列化为Property

c# - 为什么 Tuple 或 KeyValueItem 没有 setter?

javascript - 花式框图像标题和计数不起作用

javascript - 排除单选按钮以在模糊时调用 Jquery 函数

c# - 在类中创建通用字段