Beispiel #1
0
        private bool AdjustControlEnvironment(Control parent, bool forAdd)
        {
            if (ControlStateUrl.HandleResourceRequest())
            {
                return(true);
            }
            if (parent.Page == null)         //当多个控件放在同一页面上时,这一情形表明前面的控件已经处理了特定状态的显示,这里不用再处理
            //当多个控件放在同一页面上时,特定状态必须由第一个控件来处理
            {
                return(false);
            }
            string state = HttpContext.Current.Request["StatisticControlState"];

            if (forAdd)
            {
                this.Width = Unit.Percentage(100.0);
                parent.Controls.Add(this);
            }
            return(false);
        }
Beispiel #2
0
        /// <summary>
        /// 确保控件显示的上下文环境,使用界面设计器时,应调用此方法,因为控件的某些状态可能需要完整的
        /// 页面来显示,控件需要对页面作相应处理,不使用界面设计器时用上一方法即可,它会自动调用此方
        /// 法。此外,控件的客户端资源URL也需要借此处理。返回值表明是否继续构造界面,为真时应该终止后
        /// 续的任何界面相关的操作(此时响应流已关闭)。
        /// </summary>
        /// <param name="parent"></param>
        public bool EnsureControlEnvironment(Control parent)
        {
            if (ControlStateUrl.HandleResourceRequest())
            {
                return(true);
            }
            if (parent.Page == null)
            {
                return(false);
            }
            string refScript = "<LINK href='" + ControlStateUrl.BuildResourceRequestUrl(cssUrl) + "' type='text/css' rel='stylesheet'>\r\n" +
                               "<script language='javascript' src=" + ControlStateUrl.BuildResourceRequestUrl(scpUrl) + "></script>\r\n" +
                               @"
				<script language='javascript'>
					function getTree(obj)
					{
						if(!obj.tree)
						{
							var treeObj=new TreeTable('',obj);"                             +
                               "			treeObj.rootImage='"+ rootImg + "';\r\n" +
                               "			treeObj.openImage='"+ openImg + "';\r\n" +
                               "			treeObj.closeImage='"+ closeImg + "';\r\n" +
                               "			treeObj.open2Image='"+ open2Img + "';\r\n" +
                               "			treeObj.close2Image='"+ close2Img + "';\r\n" +
                               "			treeObj.line='"+ lineImg + "';\r\n" +
                               "			treeObj.minus='"+ minusImg + "';\r\n" +
                               "			treeObj.plus='"+ plusImg + "';\r\n" +
                               "			treeObj.empty='"+ emptyImg + "';\r\n" +
                               @"			return treeObj;
						}
						return obj.tree;
					}
				</script>

				"                ;

            parent.Page.RegisterClientScriptBlock("TreeTableClientScript", refScript);
            return(false);
        }
Beispiel #3
0
        protected override void Handle()
        {
            dynamicTable = StatisticControl.GetWebDynamicTable();
            StatisticControl.OnStatTableUseDynamicTable(dynamicTable);
            DataTable data     = StatisticControl.Data;
            DataView  dataView = new DataView(data);

            string[] sorts = StatisticControl.Sorts;
            if (sorts != null)
            {
                dataView.Sort = string.Join(",", sorts);
            }
            string[] groups   = StatisticControl.Groups;
            int      groupNum = 0;

            if (groups != null)
            {
                groupNum = groups.Length;
            }
            StringCollection sc = new StringCollection();

            foreach (DataColumn dc in dataView.Table.Columns)
            {
                sc.Add(dc.ColumnName);
            }
            table = StatisticControl.GetStatTable();
            StatisticRow statRow = null, lastRow = null;

            if (statRow == null)
            {
                statRow = StatisticRow.CreateTotalRow(table, groupNum, dynamicTable, StatisticControl.MaxFieldWidth, StatisticControl.BaseColor, StatisticControl.DeltaColor);
                lastRow = statRow;
            }
            for (int i = 0; i < groupNum; i++)
            {
                string field = groups[i];
                sc.Remove(field);
                lastRow = lastRow.CreateSubGroup(dataView.Table.Columns.IndexOf(field));
            }
            foreach (string field in sc)
            {
                DataColumn dc = dataView.Table.Columns[field];
                lastRow = statRow;
                while (lastRow != null)
                {
                    lastRow.AddField(dc, StatisticControl.GetStatisticFieldType(field));
                    lastRow = lastRow.SubGroup;
                }
            }
            statRow.DisplayHead(statRow, dataView);
            for (int ii = 0; ii < dataView.Count; ii++)
            {
                DataRowView drv = dataView[ii];
                statRow.ExecStatistic(drv, false);
                if (ii == dataView.Count - 1)
                {
                    statRow.ExecStatistic(drv, true);                   //结束统计
                }
            }

            Table t = new Table();

            t.Width = Unit.Percentage(100.0);
            TableRow  tr = new TableRow();
            TableCell tc = new TableCell();

            tr.Cells.Add(tc);
            t.Rows.Add(tr);

            if ((StatisticControl.DisplayButtons & DisplayButtons.EXPORT) == DisplayButtons.EXPORT)
            {
                ImageButton exportBtn = new ImageButton();
                exportBtn.ID          = "ExportBtn";
                exportBtn.ImageUrl    = ControlStateUrl.BuildResourceRequestUrl(StatisticControl.ExportIcon);
                exportBtn.ToolTip     = StatisticControl.ExportToolTip;
                exportBtn.CommandName = "Export";
                exportBtn.Click      += new ImageClickEventHandler(this.ButtonClick);

                tc.Controls.Add(exportBtn);
            }
            if ((StatisticControl.DisplayButtons & DisplayButtons.SEARCH) == DisplayButtons.SEARCH)
            {
                ImageButton searchBtn = new ImageButton();
                searchBtn.ID          = "SearchBtn";
                searchBtn.ImageUrl    = ControlStateUrl.BuildResourceRequestUrl(StatisticControl.SearchIcon);
                searchBtn.ToolTip     = "搜索数据";
                searchBtn.CommandName = "Search";
                searchBtn.Click      += new ImageClickEventHandler(this.ButtonClick);

                tc.Controls.Add(searchBtn);
            }
            tc.HorizontalAlign = HorizontalAlign.Right;

            tr = new TableRow();
            tc = new TableCell();
            tr.Cells.Add(tc);
            t.Rows.Add(tr);
            tc.Controls.Add(table);

            StatisticControl.Controls.Add(t);
            StatisticControl.OnShowStatTable(t, table);

            StatisticControl.Page.RegisterClientScriptBlock("InfoServiceCss", "<LINK href='" + StatisticControl.CssUrl + "' type='text/css' rel='stylesheet'>");
            StatisticControl.Page.RegisterClientScriptBlock("ShowControlClientScript", @"
		<script language='javascript'>
			<!--
			function openHtml(obj)
			{
				var pobj=obj.parentElement;
				if(pobj)
				{
					try
					{
						var w=window.open('about:blank','HTMLVIEW','resizable=yes,scrollbars=yes');
						w.document.write(pobj.dreamanHtml);
					}
					catch(eee)
					{
						alert('您的浏览器好象禁止了弹出窗口,无法查看HTML内容!');
					}
					event.returnValue=false;
				}
			}
			-->
		</script>
				"
                                                            );
        }
Beispiel #4
0
 public string BuildRequestUrl(string state)
 {
     return(ControlStateUrl.BuildStateRequestUrl("StatisticControlState", state));
 }
Beispiel #5
0
        protected override void Handle()
        {
            Table     t  = new Table();
            TableRow  tr = new TableRow();
            TableCell tc = new TableCell();

            tr.Cells.Add(tc);
            t.Rows.Add(tr);

            dynaTable               = StatisticControl.GetWebDynamicTable();
            dynaTable.CssUrl        = ControlStateUrl.BuildResourceRequestUrl(StatisticControl.CssUrl);
            dynaTable.ScriptUrl     = ControlStateUrl.BuildResourceRequestUrl(StatisticControl.ScriptUrl);
            dynaTable.MaxFieldWidth = StatisticControl.MaxFieldWidth;
            dynaTable.UseGroups     = true;
            if (StatisticControl.Groups != null && StatisticControl.Groups.Length > 0)
            {
                foreach (string g in StatisticControl.Groups)
                {
                    dynaTable.SetFieldGroup(g, true);
                }
            }
            if (StatisticControl.Sorts != null && StatisticControl.Sorts.Length > 0)
            {
                for (int i = 1; i <= StatisticControl.Sorts.Length; i++)
                {
                    int    sort  = i;
                    string field = StatisticControl.Sorts[i - 1].Trim();
                    if (field.ToUpper().EndsWith("DESC"))
                    {
                        sort  = -sort;
                        field = field.Substring(0, field.Length - 4).Trim();
                    }
                    dynaTable.SetFieldSort(field, sort);
                }
            }
            foreach (string s in dynaTable.KeyFields)
            {
                dynaTable[s].StatMethod = StatisticControl.GetStatisticFieldType(s);
            }
            foreach (string s in dynaTable.NormalFields)
            {
                dynaTable[s].StatMethod = StatisticControl.GetStatisticFieldType(s);
            }
            dynaTable.UI = WebDynamicTableUI.QUERY;
            StatisticControl.OnShowSearch(dynaTable);
            LiteralControl lc = new LiteralControl(dynaTable.GenerateHtml());

            dynaTable.RegisterCss(StatisticControl.Page);
            dynaTable.RegisterScript(StatisticControl.Page);

            tc.Controls.Add(lc);

            tr = new TableRow();
            tc = new TableCell();
            tr.Cells.Add(tc);
            t.Rows.Add(tr);

            ImageButton okBtn = new ImageButton();

            okBtn.ID          = "OK";
            okBtn.ImageUrl    = ControlStateUrl.BuildResourceRequestUrl(StatisticControl.SearchIcon);
            okBtn.ToolTip     = "开始搜索符合条件的数据";
            okBtn.CommandName = "Ok";
            okBtn.Click      += new ImageClickEventHandler(this.ButtonClick);

            tc.Controls.Add(okBtn);

            ImageButton returnBtn = new ImageButton();

            returnBtn.ID          = "Return";
            returnBtn.ImageUrl    = ControlStateUrl.BuildResourceRequestUrl(StatisticControl.ReturnIcon);
            returnBtn.ToolTip     = "返回数据表";
            returnBtn.CommandName = "Return";
            returnBtn.Click      += new ImageClickEventHandler(this.ButtonClick);

            tc.Controls.Add(returnBtn);
            tc.HorizontalAlign = HorizontalAlign.Center;

            StatisticControl.Controls.Add(t);
        }