这里的例子是,通过子窗口的相关条件设置和调色板中颜色选择,改变父窗口中报表的颜色。。。

部分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>

 

 

posted on 2009-12-30 17:01  风叶  阅读(977)  评论(0编辑  收藏  举报