积极答复者
OWC中SpreadSheet控件采用<object>嵌入到网页,怎么使它在其它层之下(如div下)?

问题
-
OWC中SpreadSheet控件采用<object>嵌入到网页,不管怎么设置,<object>都在其它层或块之上,有没有方法将这种ActiveX控件的层设置为最低,在其它层之下?
不采用以下方式:将ActiveX控件嵌入Iframe去实现。
示例代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SASAppSglReportDetail.aspx.cs" Inherits="EINTECH.IMS.UI.Web.SASApp.SASAppSglReportDetail" %>
<%@ Register Assembly="EINTECH.Platform.UI.Web.ComponentsEx" Namespace="EINTECH.Platform.UI.Web" TagPrefix="EI" %>
<%@ Register Assembly="EINTECH.Platform.UI.Web.ComponentsEx" Namespace="EINTECH.Platform.UI.Web.ComponentsEx" TagPrefix="EI" %>
<html>
<head runat="server">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0">
<EI:WebHead ID="WebHead1" runat="server" Title="业务模块统计"></EI:WebHead>
<EI:WebServiceRef ID="WebServiceRef1" Src="~/IMS/WebServices/SASApp/SASAppCommon.asmx" runat="server"></EI:WebServiceRef>
</head>
<body>
<form id="form1" runat="server">
<div>
<table cellpadding="3" style="width:100%;height:100%">
<tr>
<td>
<div id="divMsg" style="width:100%">
<EI:WebDetailRecordEdit ID="dreConditionQuery" runat="server" Width="100%" />
</div>
</td>
</tr>
<tr style="height:100%">
<td>
<OBJECT id="objSpreadsheet" classid="CLSID:0002E559-0000-0000-C000-000000000046" height="100%" width="100%" style="z-index:-100">
</OBJECT>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
<script language="javascript" type="text/javascript">
var objectType = "<%=ObjectType %>";
var objectName = "<%=ObjectName %>";
var objSpreadsheetObj = document.getElementById("objSpreadsheet");
var sglParamsMapCfgTable = null;
var sglResourceMapCfgTable = null;
var dataTable = null;
function onQuery()
{
WaitWindow("数据统计计算中,请稍候......");
setTimeout("compute()",1);
}
function onExport()
{
objSpreadsheetObj.Export("SAS Export XXX.xsl");
}
function onPrint()
{
}
function compute()
{
objSpreadsheetObj.Caption = objectName;
objSpreadsheetObj.XMLData = executeBuildTempReport();
objSpreadsheetObj.style.width = "100%";
objSpreadsheetObj.style.height = "100%";
WaitWindow();
}
function executeBuildTempReport()
{
if(sglParamsMapCfgTable==null)
{
dataTable = new EI.Data.DataTable();
sglParamsMapCfgTable = SASAppCommon.GetParamsMapEntityByType(objectType);
}
dataTable.setDataTable(sglParamsMapCfgTable);
var keyNameValues = [];
for(var i=0;i<dataTable.getRowCount();i++)
{
var keyNameValue = new Object();
keyNameValue.Key = "";
keyNameValue.Name = "";
keyNameValue.Value = "";
var s = getDataCellValue(dataTable,i,"APPPARAMNAME");
var obj = dreConditionQuery.getControlByName(s);
keyNameValue.Key = getDataCellValue(dataTable,i,"SASPARAMNAME");
keyNameValue.Name = obj.classname
keyNameValue.Value = obj.classname=="EI.UI.DateTime"?obj.getText() : obj.getValue();
keyNameValues[ i ] = keyNameValue;
}
var result = SASAppCommon.BuildTempReport(getReportResourcePath(),keyNameValues).Result;
return result;
}
function getReportResourcePath()
{
if(sglResourceMapCfgTable==null)
{
dataTable = new EI.Data.DataTable();
sglResourceMapCfgTable = SASAppCommon.GetResourceMapEntityByType(objectType);
}
dataTable.setDataTable(sglResourceMapCfgTable);
if(dataTable.getRowCount()==1)
{
return getDataCellValue(dataTable,0,"MAPRESOURCE");
}
for(var i=0;i<dataTable.getRowCount();i++)
{
var appParamName = getDataCellValue(dataTable,i,"APPPARAMNAME");
var appParamValue = getDataCellValue(dataTable,i,"APPPARAMVALUE");
if(dreConditionQuery.getControlByName(appParamName).getValue()==appParamValue)
{
return getDataCellValue(dataTable,i,"MAPRESOURCE");
}
}
return "";
}var queryObj = document.getElementById("btnQuery");
if(queryObj)
{
queryObj.onclick=onQuery;
}
var exportObj = document.getElementById("btnExport");
if(exportObj)
{
exportObj.onclick = onExport;
}
var printObj = document.getElementById("btnPrint");
if(printObj)
{
printObj.onclick = onPrint;
}
</script>
答案
-
完全可以用DIV实现
div { position:absolute; z-index:3; left:267px; top:72px;width:100px; height:100px; }
设置z-index,其实从字面上已经可以解释;z是从x、y以后的第三个轴,从网页上表现就是除了上下左右外的前后。规定这个属性,首先要求Div必须是浮动的,值越大,Div越靠前;数值可以不连续。你可以把你的OWC放在一个DIV里,把z-index属性设置成0
在把你需要放在这个层之上的内容放到另一个DIV里,把z-index属性设置成1
在设置两个层的left和top属性,使两个层重叠
就可以了!
全部回复
-
完全可以用DIV实现
div { position:absolute; z-index:3; left:267px; top:72px;width:100px; height:100px; }
设置z-index,其实从字面上已经可以解释;z是从x、y以后的第三个轴,从网页上表现就是除了上下左右外的前后。规定这个属性,首先要求Div必须是浮动的,值越大,Div越靠前;数值可以不连续。你可以把你的OWC放在一个DIV里,把z-index属性设置成0
在把你需要放在这个层之上的内容放到另一个DIV里,把z-index属性设置成1
在设置两个层的left和top属性,使两个层重叠
就可以了!
-
Mike liu 写: 完全可以用DIV实现
div { position:absolute; z-index:3; left:267px; top:72px;width:100px; height:100px; }
设置z-index,其实从字面上已经可以解释;z是从x、y以后的第三个轴,从网页上表现就是除了上下左右外的前后。规定这个属性,首先要求Div必须是浮动的,值越大,Div越靠前;数值可以不连续。你可以把你的OWC放在一个DIV里,把z-index属性设置成0
在把你需要放在这个层之上的内容放到另一个DIV里,把z-index属性设置成1
在设置两个层的left和top属性,使两个层重叠
就可以了!
正解,flash的Object已经测试成功。