人活着为了什么,就是为了吃饭! ——摘自<<雷洛传>>

天空掠过飞鸟的痕迹,而我早已飞过!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

用javascript弹出的模式对话框!

Posted on 2006-01-29 18:23  钟红  阅读(2593)  评论(2编辑  收藏  举报
       在ASP.NET中,页面跳转的方法有几种,如Response.Redirect(),等等,这样跳转的结果是当前页面不见,去了另外一个页面,要想父窗口存在,弹出模式窗口,可以用javascript来实现.
      在DataGrid中的模板列中,放一个更新的ImageButton,当点击时,弹出的这一行详细信息的子窗口,用户可以在子窗口中编辑,当用户关闭子窗口时,父窗口就重新装载一次.
       要想实现上述功能,首先要在父窗口的Datagrid中的ItemDataBound写如下代码:
    private void dgd_Open_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        
{
            
for(int i=0;i<dgd_Open.Items.Count;i++)
            
{   
                
string strID = dgd_OpenInfo.Items[i].Cells[0].Text.ToString();
                ((ImageButton)(dgd_Open.Items[i].FindControl(
"cmd_update"))).Attributes.Add("onclick","javascript:showModalDialog('OpenMessage.aspx?tag="+strID+"',window,'dialogwidth:450px;dialogheight:480px;help:0;center:yes;resizable:0;status:0;scroll:yes');return(false);");
            }

        }
    这样就打开了一个模式窗口,而且传了一个ID的值给子窗口,关闭子窗口,重新装载父窗口也是用Javascript来实现,如下:
   Response.Write("<script language=javascript>parent.window.opener=null;parent.window.dialogArguments.location.reload();window.close();</script>");

    这样写Datagrid分了页后,就有点问题,windows会弹出一个对话筐,要你刷新窗口,把脚本该成如下就没有问题了
 

 Response.Write("<script language=javascript>window.dialogArguments.document.location.href='parent.aspx';window.close();</script>");