问题描述
我有一个名为raise_alarm()的方法,该方法显示基于jquery的消息框.但是,当我从Updatepanel内部的控件事件(例如,提交按钮)中调用此方法时,它将无法正常工作.相关代码如下.我该如何解决?
I have a method named raise_alarm() which, show a message box based on jquery. But when I call this method from an event of a control(such as submit button) which is inside of Updatepanel, it isn't working. Related codes are below. How can I fix it?
Public Sub Raise_Alarm(ByVal p_Page As Page, ByVal p_Message As String, Optional ByVal p_IsError As Boolean = True)
Dim strScript As String
strScript = "$(function() { Mesaj('" & p_Message & "'); });" & ControlChars.NewLine
p_Page.ClientScript.RegisterStartupScript(p_Page.GetType(), "alert", strScript, True)
end sub
Private Sub dtlQuestion_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dtlQuestion.ItemCommand
If Not User.Identity.IsAuthenticated Then
Raise_Alarm(Me, "Giriş Yapmadan Oy Veremezsiniz")
Exit Sub
End If
end sub
推荐答案
您必须使用ScriptManager
而不是p_Page.ClientScript
.
示例.我在您的代码中将p_Page.ClientScript
替换为ScriptManager
.
EDIT : Example. I replaced p_Page.ClientScript
by ScriptManager
in your code.
Public Sub Raise_Alarm(ByVal p_Page As Page, ByVal p_Message As String, Optional ByVal p_IsError As Boolean = True)
Dim strScript As String
strScript = "$(function() { Mesaj('" & p_Message & "'); });" & ControlChars.NewLine
ScriptManager.RegisterStartupScript(p_Page.GetType(), "alert", strScript, True)
end sub
Private Sub dtlQuestion_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dtlQuestion.ItemCommand
If Not User.Identity.IsAuthenticated Then
Raise_Alarm(Me, "Giriş Yapmadan Oy Veremezsiniz")
Exit Sub
End If
end sub
ClientScript未启用Ajax,ScriptManager知道如何处理部分回发.请快速浏览有关msdn的文章.
ClientScript is not ajax enabled, ScriptManager knows how to deal with partial postbacks. Please have a quick look at this article on msdn.
这篇关于Jqmodal在Updatepanel中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!