如何从ASP代码隐藏修改模态弹出窗口而不是让它关闭?

时间:2010-05-19 03:42:31

标签: asp.net jquery code-behind simplemodal

我正在使用SimpleModal在ASP.net应用程序上创建弹出窗口。 OK按钮调用服务器端函数 - 并且基于该函数的结果我想修改弹出窗口(使某些东西可见,等等)而不是让它关闭。如果这太难了,我想再次打开弹出窗口而无需用户重新点击任何内容。我只是不确定最好的办法是什么。

目前弹出窗口中的OK按钮如下所示:

<asp:ImageButton ID="submitInfoBtn" OnClick="btnSubmitInfo_Click"
           ImageUrl="css/assets/btn_ok.png" runat="server"/>  

并且没有任何定义可以告诉任何OK按钮应该关闭弹出窗口(Cancel按钮有class =“simplemodal-close”,所以我希望它能做到这一点,但不是OK按钮) - 任何人有什么想法通过这个最好的方式?在此先感谢!!

3 个答案:

答案 0 :(得分:0)

您需要使用 return false 为按钮设置Javascript处理程序。看到... How to disable postback on an asp Button

注意返回false。这样可以防止回发。

现在,您可以在Javascript按钮处理程序中使用Ajax获取所需的任何服务器数据,并使用JQuery修改Popup。

顺便说一下,您还可以使用JQuery UI Dialog进行模态弹出窗口。您可以使用它获得更多支持。

答案 1 :(得分:0)

这不是那么困难,请看我弹出窗口的代码。弹出窗口中有一个OK按钮,有时单击OK会修改弹出窗口,有时点击会关闭窗口,我有误会吗?

void OK_click(object sender, EventArgs e)
{
   try
   {
      if (DataIsValid())
      {
        Save();
        this.Page.ClientScript.RegisterStartupScript(typeof(Page), "closeWindow", "<script type='text/javascript'>self.opener=null; self.close();</script>");
      }
      else ErrorLabel.Visible = true;
   }
   catch { ErrorLabel.Visible = true; }

}

答案 2 :(得分:0)

您需要使用SimpleModal onShow回调绑定到OK按钮,发出ajax请求,然后检查响应并显示新内容。

您不应该使用onClose回调,因为它只是用于动画关闭或任何清理。准备好$.modal.close();

时,可以以编程方式关闭对话框

它将涉及检查返回内容的尺寸并相应地调整模态尺寸。

查看flickr徽章查看器演示(http://www.ericmmartin.com/projects/simplemodal-demos/),了解我正在谈论的内容。