问题接着上次的,用Page.RegisterStartupScript(Page.GetType().ToString(), js)注册javascript脚本中用到后台vb.net定义的一个二维数组。部分代码:js += "for(i=0;i<" & arrcellsall.Length & ";i++){ "
js += " NewHTML+=""<tr>"" ;"
js += " for(j=0;j<DataTitles.length;j++){ "
js += " NewHTML+=""<td><div> "" + " & arrcellsall(i, j) & " + "" </div></td>"" ;"
js += " } "
js += " NewHTML+=""</tr>"" ;"
js += "} "问题是下标,这里(i,j)显示是在后台定义的,js循环代码中的i,j的值进不了数组下标,怎么办?
js += " NewHTML+=""<tr>"" ;"
js += " for(j=0;j<DataTitles.length;j++){ "
js += " NewHTML+=""<td><div> "" + " & arrcellsall(i, j) & " + "" </div></td>"" ;"
js += " } "
js += " NewHTML+=""</tr>"" ;"
js += "} "问题是下标,这里(i,j)显示是在后台定义的,js循环代码中的i,j的值进不了数组下标,怎么办?
不知道有没有说清楚…
js += "for(i=0;i<" & arrcellsall.Length & ";i++){ "
js += " NewHTML+=""<tr>"" ;"
js += " for(j=0;j<DataTitles.length;j++){ "
js += " var h =i;"
js += " if (j!=0) {"
js += " i = - parseInt(-i*1.0/j);"
js += "} " js += " NewHTML+=""<td><div> "" + " & arrcellsall(i, j) & " + "" </div></td>"" ;"
js += " i = h;"
js += " } "
js += " NewHTML+=""</tr>"" ;"
js += "} "
没办法,只好用数组再存一边了。 Dim i, j As Integer
Dim arrcellsall(dtwl.Rows.Count + dtwl1.Rows.Count + dtwl2.Rows.Count + 4, 22) As String
For i = 0 To dtwl.Rows.Count
For j = 0 To 21
arrcellsall(i, j) = arrcells(i, j)
Next
Next
For i = dtwl.Rows.Count + 1 To dtwl.Rows.Count + dtwl1.Rows.Count + 1
For j = 0 To 21
arrcellsall(i, j) = arrcells1(i - dtwl.Rows.Count - 1, j)
Next
Next
For i = dtwl.Rows.Count + dtwl1.Rows.Count + 2 To dtwl.Rows.Count + dtwl1.Rows.Count + dtwl2.Rows.Count + 2
For j = 0 To 21
arrcellsall(i, j) = arrcells2(i - dtwl.Rows.Count - dtwl1.Rows.Count - 2, j)
Next
Next Dim js As String
js += "<script language='javascript' type=""text/javascript""> "
js += "var DataTitles=new Array("
js += "'物料代码 #130 #left' ,"
………………
js += "'偏差值 #88 #center');"
js += "var BoxWidth = 800; "
js += "var ShowLine = 20; "
js += "var RsHeight = 21; "
js += "var LockCols = 1 ;"
js += "function WriteTable(){"
js += "var iBoxWidth=BoxWidth ;"
js += "var NewHTML=""<table border=\""0\"" cellpadding=\""0\"" cellspacing=\""0\""><tr>\"
js += "<td><div style=\""width:100%;overflow-x:scroll\"">\"
js += "<table border=\""0\"" cellpadding=\""0\"" cellspacing=\""0\""><tr>"" ;"
js += "for(i=0;i<DataTitles.length;i++){ "
js += " if(i<LockCols){ "
js += " var cTitle=DataTitles[i].split(""#"") ;"
js += " iBoxWidth-=cTitle[1] ;"
js += " var DynTip=((i+1)==LockCols)?""解除锁定"":""锁定此栏位"" ;"
js += " NewHTML+=""<td><div class=\""title\"" style=\""width:""+cTitle[1]+""px;height:""+RsHeight+""px\""title=\""""+DynTip+""\"" onclick=\""ResetTable(""+i+"")\"">""+cTitle[0]+""</div></td>"" ;"
js += " } "
js += "} "
js += "NewHTML+=""</tr>\"
js += "<tr><td colspan=\""""+LockCols+""\"">\"
js += "<div id=\""DataFrame1\"" style=\""position:relative;width:100%;overflow:hidden\"">\"
js += "<div id=\""DataGroup1\"" style=\""position:relative\""></div></div>\"
js += "</td></tr></table></div></td>\"
js += "<td valign=\""top\""><div style=\""width:""+iBoxWidth+""px;overflow-x:scroll\"">\"
js += "<table border=\""0\"" cellpadding=\""0\"" cellspacing=\""0\""><tr>"" ;"
js += "for(i=0;i<DataTitles.length;i++){ "
js += " if(i>=LockCols){ "
js += " var cTitle=DataTitles[i].split(""#"") ;"
js += " NewHTML+=""<td><div class=\""title\"" style=\""width:""+cTitle[1]+""px;height:""+RsHeight+""px\""title=\""锁定此栏位\"" onclick=\""ResetTable(""+i+"")\"">""+cTitle[0]+""</div></td>"" ;"
js += " } "
js += "} "
js += "NewHTML+=""</tr>\"
js += "<tr><td colspan=\""""+(DataTitles.length-LockCols)+""\"">\"
js += "<div id=\""DataFrame2\"" style=\""position:relative;width:100%;overflow:hidden\"">\"
js += "<div id=\""DataGroup2\"" style=\""position:relative\""></div>\"
js += "</div></td></tr></table>\"
js += "</div></td><td valign=\""top\"">\"
js += "<div id=\""DataFrame3\"" style=\""position:relative;background:#000;overflow-y:scroll\"" onscroll=\""SYNC_Roll()\"">\"
js += "<div id=\""DataGroup3\"" style=\""position:relative;width:1px;visibility:hidden\""></div>\"
js += "</div></td></tr></table>"" ;"
js += "DataTable.innerHTML=NewHTML ;"
js += "ApplyData() ;"
js += "} " js += "function ApplyData(){"
js += "var NewHTML=""<table border=\""0\"" cellpadding=\""0\"" cellspacing=\""0\"">"" ;"
js += "for(i=0;i<" & arrcellsall.Length & ";i++){ "
js += " NewHTML+=""<tr>"" ;"
js += " for(j=0;j<DataTitles.length;j++){ "
js += " if(j<LockCols){ "
js += " var cTitle=DataTitles[j].split(""#"") ;"
js += " var h =i;"
js += " if (j!=0) {"
js += " i = - parseInt(-i*1.0/j);"
js += " } "
js += " NewHTML+=""<td><div class=\""cdata\"" style=\""width:""+cTitle[1]+""px;height:""+RsHeight+""px;text-align:""+cTitle[2]+""\"">"" + " & arrcellsall(5, j) & " + "" </div></td>"" ;"
js += " i = h;"
js += " } "
js += " } "
js += " NewHTML+=""</tr>"" ;"
js += "} "
js += "NewHTML+=""</table>"" ;"
js += "DataGroup1.innerHTML=NewHTML ;"
js += " "
js += "var NewHTML=""<table border=\""0\"" cellpadding=\""0\"" cellspacing=\""0\"">"" ;"
js += "for(i=0;i<" & arrcellsall.Length & ";i++){ "
js += " NewHTML+=""<tr>"" ;"
js += " for(j=0;j<DataTitles.length;j++){ "
js += " if(j>=LockCols){ "
js += " var cTitle=DataTitles[j].split(""#"") ;"
js += " var h =i;"
js += " if (j!=0) {"
js += " i = - parseInt(-i*1.0/j);"
js += "} "
js += " NewHTML+=""<td><div class=\""cdata\"" style=\""width:""+cTitle[1]+""px;height:""+RsHeight+""px;text-align:""+cTitle[2]+""\""> "" + " & arrcellsall(5, j) & " + "" </div></td>"" ;"
js += " i = h;"
js += " } "
js += " } "
js += " NewHTML+=""</tr>"" ;"
js += "} "
js += "NewHTML+=""</table>"" ;"
js += "DataGroup2.innerHTML=NewHTML ;"
js += "DataFrame1.style.pixelHeight=RsHeight*ShowLine ;"
js += "DataFrame2.style.pixelHeight=RsHeight*ShowLine ;"
js += "DataFrame3.style.pixelHeight=RsHeight*ShowLine+RsHeight ;"
js += "DataGroup3.style.pixelHeight=RsHeight*(" & arrcellsall.Length & " +1) ;"
js += "} "
js += "function ResetTable(n){ "
js += "var iBoxWidth=0 ;"
js += "for(i=0;i<DataTitles.length;i++){ "
js += " if(i<(n+1)){ "
js += " var cTitle=DataTitles[i].split(""#"") ;"
js += " iBoxWidth+=parseInt(cTitle[1]) ;"
js += " } "
js += "} "
js += "if(iBoxWidth>BoxWidth){ "
js += " var Sure=confirm(""\n锁定栏位的宽度大於资料表显示的宽 \n\n度,这可能会造成版面显示不正常。\n\n\n您确定要继续吗?"") ;"
js += "}else{ "
js += " Sure=true ;"
js += "} "
js += "if(Sure){ "
js += " LockCols=(LockCols==n+1)?0:n+1 ;"
js += " WriteTable() ;"
js += "} "
js += "} "
js += "function SYNC_Roll(){ "
js += "DataGroup1.style.posTop=-DataFrame3.scrollTop ;"
js += "DataGroup2.style.posTop=-DataFrame3.scrollTop; "
js += "} "
js += "window.onload=WriteTable ;"
js += "</script>" Page.RegisterStartupScript(Page.GetType().ToString(), js)