我有一个问题,我想知道这个优秀的社区是否可以帮助我解决。
我有一个 webform asp.net(使用 vb.net 代码)Web 应用程序,在我的其中一个表单上有一个数据网格。每条记录可以有不同的状态,并且可以通过复选框选择每条记录。在网格的底部,我有一个用户可以执行的可能操作的下拉菜单,这些操作将针对所选的记录,以及一个用于调用所选操作的按钮。
现在我遇到的问题是,由于在完成所选操作之前状态存在差异,我需要检查所选记录是否可以执行此类操作,对此我感到非常恼火。
示例
我选择记录 1,2,3,4,5。我选择的操作是以 CSV 格式下载,但是只能下载解锁的记录,因此在我的示例中只有记录 1、3、5 被解锁。这意味着我只能下载 1,3,5,而不能下载记录 2,4。下载后,我想标记已下载的记录并刷新网格。
我通过查找要下载的记录(又名 1,3,5)、创建一个 CSV(或 XML,因为这也是操作之一)作为字符串,标记记录 1,3 来完成此操作, 5 下载后,刷新网格,然后调用表单上的隐藏按钮来实际下载数据。
If Not ViewState("Data") Is Nothing Then
Response.Clear()
Response.ClearHeaders()
Response.Buffer = True
Response.ContentEncoding = Encoding.UTF8
Response.ContentType = IIf(ViewState("ExportType").ToString() = SharedApplication.ExportedType.XML, "application/xml", "text/csv")
Response.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}", "records-" & "." & ViewState("ExportType").ToString()))
Response.Write(ViewState("Data"))
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.SuppressContent = True
HttpContext.Current.ApplicationInstance.CompleteRequest()
ViewState("Data") = Nothing
End If
上面下载了数据,为了调用下载按钮,我使用 JavaScript 对隐藏按钮的单击事件进行回发。
但是我遇到的问题是在下载数据之前我想添加一个确认框,内容是“仅下载 5 条记录中的 3 条,是否要继续”。选择"is"继续下载,选择“否”则停止操作。我该怎么做呢?我尝试了各种技术但无法弄清楚。
我尝试在其 onlcientclik 事件中的隐藏按钮上添加返回确认,但这永远不会被触发。如果您实际单击该按钮,它确实有效,但当我通过 JS 回发其单击时,它不起作用。
我能找到的壁橱正在使用后面代码中的registeronsubmit。
ClientScript.RegisterOnSubmitStatement(btnHidden.GetType, "confirm", "return confirm('Are you sure?');")
但是即使我们点击另一个按钮,它也会不断地被触发。我尝试添加另一个隐藏按钮,希望可以添加客户端单击以显示确认框,但这也不起作用。
有人知道吗,我可能会创建一个弹出窗口来显示消息框,但是如果我的代码需要继续,我该如何捕获。
最佳答案
嗨,我想我最好分享一下我最终为完成问题所做的事情,以防其他人进入这个领域。
所以我离开并更多地思考这个问题,我提出的解决方案实际上效果很好,尽管有些人可能会说这是一种相当丑陋的方法。
我使用下拉列表来标记需要执行什么操作,所以我想为什么我们不使用下拉列表上的回发事件来构建确认框的消息,然后在 OnClientClick 事件上添加 JS 确认框按钮的。
btnRun.OnClientClick = "return confirm('" & sMessage & "');"
消息变量是一个字符串,它根据选择的流程操作构建消息。
这意味着一旦下拉列表更改为操作,代码就会计算出将更改多少个选定项目。这是一个 SQL 查询,它选取将更改哪些代码/ID,然后无论选择什么操作,数据计数都会更改/导出所选项目的总数。这样就构建了流程按钮确认,因此当用户点击流程按钮时它显示的 X out of X will bechanged,是否要继续。如果选择“取消”,则不会发生任何事情,如果选择“确定”,则在我想显示一些消息框之前,它会像往常一样继续并完成操作。
关于javascript - 如何在程序中间的代码后面显示确认框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59645364/