Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在C代码中使用jQuery dialog()而不是confirm()?_Javascript_C#_Jquery_Jquery Ui_Jquery Ui Dialog - Fatal编程技术网

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

Javascript 如何在C代码中使用jQuery dialog()而不是confirm()?,javascript,c#,jquery,jquery-ui,jquery-ui-dialog,Javascript,C#,Jquery,Jquery Ui,Jquery Ui Dialog,我是一名前端开发人员,对C#没有进一步的了解,所以请原谅我可能愚蠢的问题。我目前正在尝试使用jQuery UI对话框替换常见的JavaScript alert()和confirm()框。到目前为止,这在前端运行良好,但现在我在其中一个C#页面中找到了这段代码,我不知道从confirm()切换到jQuery dialog()的最佳方式是什么。有什么想法吗 string delCode = "javascript:" + "if ( confirm(\'Are you sure you w

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

string delCode = "javascript:"
     + "if ( confirm(\'Are you sure you wish to delete this?\')){ "
     + this.Page.ClientScript.GetPostBackEventReference(this, string.Empty)
     + ";} else { return false; }";
编辑: 在玩了一段时间后,我发现如果不添加OnClientClick属性以防止单击按钮时回发,它将无法工作。如何从代码隐藏中添加此属性? 添加(“OnClientClick”、“foo”); 不适合我。解决这个问题的正确方法是什么

这就是我想要的,到目前为止,它只是简单的JS(你可以看到按钮的C#代码片段作为注释出现在Fiddle中HTML内容的上方):

遗憾的是,要在Web表单内部将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>
您只需以编程方式创建按钮,或者从代码隐藏中在页面中找到按钮。我将使用create,向您展示我的意思:

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

是.aspx还是.cshtml?确定它是Web窗体还是MVC/Web-Api。在javascript变量中存储
this.Page.ClientScript.GetPostBackEventReference(this,string.Empty)
的输出,并执行与您相同的操作elsewhere@Greg,是.aspxc。你能发布更多的代码吗?比如下一条语句是什么?@Kris,这只是一行简单的代码:DeleteButton.Attributes.Add(“onclick”,delCode);好的,我明白了。所以我会尝试一下——至少这可能是一种“更好的可读性”“,至少对我们这些前端人员来说;-)格雷格先生,谢谢你用正确的方式推我@SchweizerSchoggi是的,对于前端来说,这样做更好。否则,将出现不匹配和hodge podge前端和后端状态。这将尝试为您分离一点。Web表单在JavaScript上非常粗糙,而且
clientmode=“static”
也将是您的朋友,除非您想使用大量CSS类。如何从代码后面添加OnClientClick属性?Add(“OnClientClick”、“foo”)对我不起作用。。我需要用这种方法来解决这个问题,否则我将不得不更改大量文件。@SchweizerSchoggi也用这种方法更新了答案。请记住,在加载JavaScript之前,事件不会触发,因为它还没有准备好。或者,如果您不按顺序添加属性,它将不会附加到按钮,因此它必须位于Page_Load或之前。
public void Page_Load(...)
{
     var lb = new LinkButton();
     lb.OnClientClick = "launch();"
}