在ASP.NET ModalPopupExtender上更新消息

时间:2010-06-16 17:46:12

标签: asp.net ajax modalpopupextender

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

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

如果无法做到这一点,我想考虑使用JavaScript提示框显示消息。

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

约翰

2 个答案:

答案 0 :(得分:2)

因为我使用了ModalExtender和UpdatePanels已经有一段时间了,但这是可能的。基本上(锈掉掉了头部),我在模态中设置了一个标签,设置为visible = false。然后,在单击“确定”按钮时,我在处理逻辑的代码后面调用了一个函数。如果逻辑失败,那么我更新了标签文本并设置了visible = 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

答案 1 :(得分:1)

汤米,谢谢你的回复。我不是回复你作为评论,而是作为答案,希望有人能告诉我这是否是我们能做的最好的。 对于那些面临同样情况的人来说,这也许会有所帮助。

昨天发布后,我花了几个小时就找到了解决方案,这与你在答案中描述的基本相同。

关键问题是我没有使用扩展器的OK按钮。相反,我使用常规链接按钮,单击时触发服务器端单击事件。无论验证结果如何,此事件都会关闭弹出窗口。因此,我的目标是保持弹出窗口打开或至少使其显示为打开,然后向其添加任何验证错误消息。

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

那就做到了!

再次感谢。