从数据库中取得数据放入DataTable DT后:OS是EXCEL表格组件,这样的格式哪写的有问题,总提示少分号,尤其是strScript += "foreach(DataRow "+DR+" in "+DT.Rows+")";总感觉写法有问题。
DataTable DT = new DataTable();
DT=n_DataSet.Tables [DTName];
DataRow DR=null;
string strScript = "<script language=javascript>";
strScript += "var OS1 = document.Form1.OS;";
strScript += "foreach(DataRow "+DR+" in "+DT.Rows+")";
strScript += "{";
strScript += "rows="+(rows+1)+";";
strScript += m_ID+"="+DR[2].ToString().Trim()+";";
strScript +="OS1.Cells("+rows+", 1)="+m_ID;
strScript += ";}";
strScript +="</script>";
Page.RegisterStartupScript("StartUp", strScript);还有一个页面中可以存在这样的两个类似文本吗?
Page.RegisterStartupScript("StartUp", strScript1);
Page.RegisterStartupScript("StartUp", strScript2);

解决方案 »

  1.   

    楼主写了输出的是js脚本,
    string strScript = "<script language=javascript>";
    js脚本好象没有有foreach,DataRow 这样的语句,
    strScript += "foreach(DataRow "+DR+" in "+DT.Rows+")";
    上面的能执行吗,为什么不改成变量做循环,还有,输出的脚本最好加个换行,如strScript += "var OS1 = document.Form1.OS;\n";
    建议楼主调试输出strScript的值, 把strScript的值放到你的页面上执行,这样错误容易找到些
      

  2.   

    strScript += "foreach(DataRow "+DR+" in "+DT.Rows+")";中DR和DT.Rows就是变量啊。。应为还要用到DR[2].ToString().Trim(),所以只能这样了