2010-06-16 43 views
0

我在MS AJAX ModalPopup Extender中有一个表单,它位于UpdatePanel(用于异步加载)。一切按预期工作。有一件事我正试图做,但不知道该怎么做。关于ASP.NET的更新消息ModalPopupExtender

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

如果这是不可能的,我想使用JavaScript警告框显示消息。

任何洞察力和建议,非常感谢。

约翰

+0

对不起,我从来没有想出如何将答案标记为接受答案。最后我明白了。我回去标记那些回答我的问题的答案。谢谢! – John 2010-06-16 18:04:31

+0

没问题。对不起,我不知道你的问题的答案。 – 2010-06-16 18:07:06

+0

jacerhea,没关系。应该给予那些花时间和努力回答任何人的问题的人。 – John 2010-06-16 18:09:29

回答

2

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

托米,感谢您的答复。我没有回复你作为评论,而是作为回答,希望有人能告诉我这是否是我们能做的最好的。 此外,它也可能对面临相同情况的人有所帮助。

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

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

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

这样做!

再次感谢。

+0

随时!我查看了我的.aspx页面代码,并做了同样的事情 - 在这些模式上没有OKBtnID参数。 – Tommy 2010-06-17 17:12:28