0

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

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

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

并且没有任何定义可以告诉任何事情 OK 按钮应该关闭弹出窗口(取消按钮有 class="simplemodal-close",所以我希望它能够做到这一点,但不是 OK 按钮) - 任何人都有任何想法通过这个最好的方式?提前致谢!!

4

3 回答 3

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; }

}
于 2010-05-19T05:59:17.037 回答
0

您需要使用return false为按钮设置 Javascript 处理程序。请参阅... 如何在 asp 按钮上禁用回发

注意返回错误。这将防止回发。

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

顺便说一句,您还可以将JQuery UI Dialog用于模式弹出窗口。使用它可能会获得更多支持。

于 2010-05-19T03:53:17.463 回答
0

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

您不应该使用onClose回调,因为它只是用于动画关闭或任何清理。您可以在准备好后以编程方式关闭对话框$.modal.close();

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

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

于 2010-05-22T14:21:29.827 回答