从codebehind调用JavaScript函数

我看过像这样的类似问题的回答,但由于我是ASP.NET的新手,我不确定它们是否适用于我想要做的事情。

我在.aspx页面上有一个按钮,一旦按下,我想它的click事件调用我在MasterPage上的JavaScript函数来显示模态弹出窗口。

我希望click事件也能够更新modalpopup的内容。 这可以通过在modalpopup中放入.aspx标签并从代码隐藏设置文本来实现吗?

这是我的JavaScript modalpopup的代码:

 // Demo modal function openModal() { $.modal({ content: '

This is an example of modal window.

' + '

Test text:

' + '
    ' + '
  • Sample Text
  • ' + '
', title: 'Example modal window', maxWidth: 500, buttons: { 'Open new modal': function (win) { openModal(); }, 'Close': function (win) { win.closeModal(); } } }); }

当前有人点击具有“openModal”onclick事件的链接时会显示此弹出窗口。 但是在.aspx按钮完成回发后如何才能完成它,如何动态更改其文本呢?

我希望能够在我的MasterPage上有一个modalpopup函数,任何其他页面都可以填充内容以显示他们需要的任何消息。

我还想注意,这是在回发上完成的,以防任何基于页面的响应没有被刷新。**

C#:

 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { if ((Session("myButtonWasClicked") != null)) { string content = "

This is an example of modal window.

"; //make sure to escape any characters that need escaping StringBuilder sb = new StringBuilder(); sb.Append(""); Page page = HttpContext.Current.CurrentHandler; ClientScriptManager cs = page.ClientScript; cs.RegisterClientScriptBlock(typeof(Reports), "modulFunction", sb.ToString, false); Session("myButtonWasClicked") = null; } } } //Don't forget to assign this event to your button protected void btn_Click(object sender, EventArgs e) { Session("myButtonWasClicked") = 1; }

VB.NET:

 Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If IsPostBack Then If Not IsNothing(Session("myButtonWasClicked")) Then Dim content As String = "

This is an example of modal window.

" 'make sure to escape any characters that need escaping Dim sb As New StringBuilder sb.Append("") Dim page As Page = HttpContext.Current.CurrentHandler Dim cs As ClientScriptManager = page.ClientScript cs.RegisterClientScriptBlock(GetType(Reports), "modulFunction", sb.ToString, False) Session("myButtonWasClicked") = Nothing End If End If End Sub Protected Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click Session("myButtonWasClicked") = 1 End Sub

Reports是您的代码所在的classpage的类型。

你的脚本:

  

尝试以下方法:

 Response.Write(""); 

或者如果您在页面上使用ScriptManager,那么您也可以尝试使用它:

 System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "CallFunction", "openModal();", true);