0

我有一个调用 showModalDialog 的 web 应用程序,但由于某种原因,这不受 chrome 支持,我确实搜索了解决方法,但没有任何成功。

showModalDialog 显示一个带有搜索字段的 aspx 页面,当用户在任何部门名称链接上选择名称应显示在括号窗口文本框中时,将显示一个带有所有部门的网格。

function DisplayDept() 
{
    var Object = window.showModalDialog('../DeptList.aspx', null, 'location=0,center:yes,status=0,scrollbars=1,width=500,height=500');
    if (Object != null)
    {
        document.getElementById("<%=hdnDept.ClientID%>").value = Object.id;
        if(document.getElementById("<%=txtDname.ClientID%>").value!=Object.name)
        {
            document.getElementById("<%=txtDname.ClientID%>").value=Object.name;
            __doPostBack(document.getElementById("<%=txtDname.ClientID%>").name,''); 
        }
     }
}

 function LinkSelected(intCD, strName)
    {
         var obj=new Object();
         obj.id=intCD;
        obj.name=strName;
        window.returnValue = obj;
        window.close();
    }

尝试使用 window.open 方法,但无法将所选字段从打开的窗口分配到父窗口控件,想知道什么是理想的解决方案,因为我正在使用 asp.net web。应用。任何关于此的建议/帮助都会对 gr8 有所帮助。

4

1 回答 1

0

现在我已经使用 windows.open 解决了,如下所示。

function DisplayDept() 
{
    var Object = window.open('../DeptList.aspx', null, 'location=0,center:yes,status=0,scrollbars=1,width=500,height=500');
 }

其次是

function SetDept(Object) {
       if (Object != null)
      {
            document.getElementById("<%=txtDname.ClientID%>").value=Object.name;
            __doPostBack(document.getElementById("<%=txtDname.ClientID%>").name,''); 
        }

    }

在子窗口中

function SelectIt(intTypeCD, strTypeName)
    {
        var obj=new Object();
         obj.id=intCD;
        obj.name=strName;
         window.opener.SetDept(obj);
        window.close();
    }
于 2014-09-16T08:03:32.167 回答