<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代码
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>
private void btnSelectStudent_Click(object sender, System.EventArgs e)
{
this.studentID = int.Parse(this.txtStudentID.Value);
BindStudentInfo(studentID);
}
开始测试的时候并没有什么问题,一切正常,后来快要交付项目了才有同事在无意中发现了一个问题,就是在弹出选择学生的模式窗体时,第一次能正常显示,正确的执行js事件和后台的代码事件,而事件回传以后再次点击选择学生的按钮时,模式窗体死活不显示,也没有任何错误,一个人找了半天也没有找出问题的所在,发动同事一块儿寻找,,最后才发现原来是存放模式窗体的路径的变量selectStudentPage因为事件回传的缘故,原来的值丢掉了,打开模式窗体的时候传过去的路径是一个空字符串,知道了原因后,自然问题迎刃而解,开始又有新的问题,既然ShowModalDialog打开的是一个空的字符串,为什么不报错误,或者显示一个空白窗体呢?!
{
this.studentID = int.Parse(this.txtStudentID.Value);
BindStudentInfo(studentID);
}