【问题标题】:Update Message on ASP.NET ModalPopupExtender更新 ASP.NET ModalPopupExtender 上的消息
【发布时间】:2010-06-16 17:46:12
【问题描述】:

我在 MS AJAX ModalPopup Extender 中有一个表单,它位于 UpdatePanel 中(用于异步加载)。一切都按预期工作。我正在尝试做一件事,但不知道该怎么做。

在提交表单时,在客户端验证之上还有服务器端验证。我的问题是:显示验证错误消息(如果有)的最佳方式是什么?如果消息可以异步写入弹出窗口以使弹出窗口仍然存在,那将是理想的。

如果这不可能,我正在考虑使用 JavaScript 警报框显示消息。

非常感谢任何见解和建议。

约翰

【问题讨论】:

  • 抱歉,我从来不知道如何将答案标记为已接受的答案。最后我想通了。我回去并将那些回答了我的问题的人标记为已回答。谢谢!
  • 没问题。抱歉,我不知道你的问题的答案。
  • jacerhea,没关系。应给予那些花时间和精力回答任何人的问题的人。
  • 你会修复标题中“ModalPopupExtender”的拼写错误,以便其他有相同问题的人更容易搜索到吗?
  • 刚看到这条评论!更正了拼写错误。

标签: asp.net ajax modalpopupextender


【解决方案1】:

我已经有一段时间没有使用 ModalExtender 和 UpdatePanels 了,但这是可能的。本质上(铁锈从头上掉下来),我在模态框内有一个标签设置为可见=假。然后,在单击“确定”按钮时,我在处理逻辑的代码中调用了一个函数。如果逻辑失败,那么我更新标签文本并设置可见 = true。如果逻辑通过,我调用了模式的 close() 属性。两者都必须调用 updatePanel.update() 以刷新内容。让我看看能不能找到一个例子……

不完全是我想要的,但它可能会帮助您走上正确的道路:

If (logInstance.isNew) Then
    result = logInstance.createNewLogEntry()
    If (result.ToLower = "success") Then
        Response.Redirect("default.aspx?status=1")
    Else
        saveErrorType.InnerHtml = result
        ModalSaveError.Show()
    End If
Else
    result = logInstance.updatePreviousLogEntry(textReasons.Value)
    If (result.ToLower = "success") Then
        Response.Redirect("default.aspx?status=2")
    Else
        saveErrorType.InnerHtml = result
        ModalSaveError.Show()
    End If
End If

【讨论】:

    【解决方案2】:

    汤米,谢谢你的回复。我没有以评论的形式回复您,而是将其作为答案,希望有人能告诉我这是否是我们能做的最好的事情。 也可能对面临同样情况的人有所帮助。

    昨天发帖后,我又花了几个小时在上面找到了一个解决方案,这与您在回答中描述的想法基本相同。

    关键问题是我没有使用扩展器的确定按钮。相反,我使用了一个常规的链接按钮,它在单击时触发服务器端单击事件。无论验证结果如何,此事件都会关闭弹出窗口。所以我的目标是保持弹出窗口打开,或者至少让它看起来是打开的,然后添加任何验证错误消息。

    在我清除了对这个问题的想法之后,我认为我应该能够重新打开弹出窗口并使用用户正在处理的数据填充表单,并向其中添加我的验证错误消息。

    做到了!

    再次感谢。

    【讨论】:

    • 随时!我查看了我的 .aspx 页面代码并做了同样的事情 - 这些模式上没有 OKBtnID 参数。
    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多