今天遇到这样个问题:从数据库中查出用户列表,前面加个checkbox,然后可以对选中的用户做操作,不过操作在另一个页面,而且因为需求必须用showModalDialog打开新窗口。我略作思考就开始动手……很快本页面的特殊效果就全部完工了,但在打开新页面时卡住了,新页面的操作还是比较复杂的,必须借助服务器端代码来做,但我不知道怎样在服务器代码的Page_Load中获得showModalDialog传递的参数!!!在网上搜索了几分钟,不得要领,没辙,自己想办法了。

打开新页面的方法很简单
var userList = document.getElementById("hdnSelected").value;
window.showModalDialog(
'newpage.aspx',userList);

在新页面获得数据就绕了一下,思路就是在js的load事件中把参数写入一个隐藏控件,然后再刷新画面,后台代码再从隐藏控件中获得参数
//js
function Page_load()
{
    var userList 
= document.getElementById("hdnSelected");
    
    
if (userList.value == "")//禁止不断刷新
    {
        userList.value 
= window.dialogArguments;
        document.getElementById(
"Form1").submit();//刷新
    }

}

        private void Page_Load(object sender, System.EventArgs e)
        
{
            
if (this.IsPostBack && this.hdnSelected.Value != "")
            
{
                
//具体操作
            }

        }

这样只能说是完成了任务,感觉很不严谨。个人认为,showModalDialog问世也好久了,这个问题肯定有人遇到并解决了,希望能有精通此道的大侠来指点下,^-^
posted on 2007-03-08 17:09  非我  阅读(1899)  评论(1编辑  收藏  举报