这里的例子是,通过子窗口的相关条件设置和调色板中颜色选择,改变父窗口中报表的颜色。。。
部分color相关的主要代码:
Sub page:
<head runat="server">
<title>Set Specify Condition Color Page</title>
</head>
<body>
………………中间根据需要设定
<input id='Color6' runat="server" onclick="callColorDlg(this)" type='text' value='Color'
style='width: 40px' readonly>
<object id="dlgHelper" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px"
height="0px"> </object>
………………
………………
<script type="text/javascript">
var sInitColor = null;
function callColorDlg(textbox){
if (sInitColor == null)
var sColor = dlgHelper.ChooseColorDlg();
else
var sColor = dlgHelper.ChooseColorDlg(sInitColor);
sColor = sColor.toString(16);
if (sColor.length < 6) {
var sTempString = "000000".substring(0,6-sColor.length);
sColor = sTempString.concat(sColor);
}
sColor = "#" + sColor;
document.body.style.color=sColor;//颜色应用
textbox.style.backgroundColor=sColor;//注意这里不是"background-color,这是CSS的写法
textbox.value = sColor;
//alert(sColor);
}
</script>
</body>
后台代码中的BT_Submit_Click中处理完相关的逻辑之后调用父窗口的javascript来设置页面的颜色。
string strScript = "<script type='text/javascript'>";
strScript += "window.opener.SetColor('" + strColor + "');";
strScript += "window.close();";
strScript += "</script>";
Response.Write(strScript);
parent page:
<script type="text/javascript">
var clientID = "<%=this.ClientID %>";
function SetColor(param)//参数是颜色代码加上对应需变色的内容在报表中的行数。如#00000c,19,20,30,
{
table = document.getElementById(clientID + "_DataGrid1");
var str=param.split(',');
if(str.length !=0&& table !=null)
{
var rowid,color;
for(var i=0;i<str.length;i++)
{
if(str[i].indexOf("#")==0)
color = str[i];
else
{
rowid = str[i];
table.rows[parseInt(rowid)].style.backgroundColor =color;//样式变化
}
}
}
</script>