• 奇怪的showModalDialog!


    今天在修改项目时发现了一个问题:一个button按钮,点击以后打开一个模式窗体,从中选择学生的信息,关闭模式窗体后返回根据返回的学生的编号,在数据库中查找学生的信息,并显示出来,这是按钮的js代码
    <script language="javascript">
            
    var selectStudentPage="<%=SelectStudentPage%>"
            
    var split="<%=this.SplitStr%>";
        
    function SetStudent(idAndName)
        
    {
            
    if(idAndName==null || idAndName=="")
            
    {
                
    return ;
            }

            
    var options=idAndName.split(split);
            document.all.studentName.value
    =options[1];
            document.all.txtStudentID.value
    =options[0];
        }

        
        document.all.btnSelectStudent.onclick
    =function()
        
    {
            
    var id=ShowModalDialog(selectStudentPage,400,600,"","SetStudent","");
            
    if(id!=null)
            
    {
                __doPostBack('btnSelectStudent','')
                
    return false;
                
    //return true;
            }

            
    else
            
    {
                
    return false;
            }

        }

            
    </script>
    这是后台的cs代码
    private void btnSelectStudent_Click(object sender, System.EventArgs e)
            
    {
                
    this.studentID = int.Parse(this.txtStudentID.Value);

                BindStudentInfo(studentID);
            }
    开始测试的时候并没有什么问题,一切正常,后来快要交付项目了才有同事在无意中发现了一个问题,就是在弹出选择学生的模式窗体时,第一次能正常显示,正确的执行js事件和后台的代码事件,而事件回传以后再次点击选择学生的按钮时,模式窗体死活不显示,也没有任何错误,一个人找了半天也没有找出问题的所在,发动同事一块儿寻找,,最后才发现原来是存放模式窗体的路径的变量selectStudentPage因为事件回传的缘故,原来的值丢掉了,打开模式窗体的时候传过去的路径是一个空字符串,知道了原因后,自然问题迎刃而解,开始又有新的问题,既然ShowModalDialog打开的是一个空的字符串,为什么不报错误,或者显示一个空白窗体呢?!
  • 相关阅读:
    Java学习笔记
    计算机基础知识点整理
    codeblock的GUN GCC compiler问题
    秋招小米面经
    闭包的特性(只做了粗略整理)
    overflow:hidden为什么可以清除浮动?
    项目中出现的问题
    MySql 备忘还原数据库
    MySql语句备忘 JSON截取
    MySql语句备忘 UPDATE
  • 原文地址:https://www.cnblogs.com/Junelee1211/p/739032.html
Copyright © 2020-2023  润新知