SheetForm.cs

using System.Collections;
using System.Text;

namespace CMSC.Class.CsBoxs
{
    public class SheetForm
    {
        //定义变量
        private int toprows = 0;
        private int bottomrows = 0;
        private StringBuilder formhtml = new StringBuilder();
        private StringBuilder bottomhtml = new StringBuilder();
        private StringBuilder btnhtml = new StringBuilder();

        #region 定义属性

        private string _id = "";
        private string _name = "";
        private string _method = "";
        private string _action = "";
        private string _target = "";
        private int _subflag = 0;
        private ArrayList _formrows = new ArrayList();
        private ArrayList _formcontrols = new ArrayList();
        private ArrayList _editmenusbar = new ArrayList();
        private StringBuilder _formtables = new StringBuilder();
        private bool _formcheck = false;
        private bool _isformtables = true;

        public string Id { set { _id = value; } get { return _id; } }
        public string Name { set { _name = value; } get { return _name; } }
        public string Method { set { _method = value; } get { return _method; } }
        public string Action { set { _action = value; } get { return _action; } }
        public string Target { set { _target = value; } get { return _target; } }
        public int SubFlag { set { _subflag = value; } get { return _subflag; } }
        public ArrayList FormRows { set { _formrows = value; } get { return _formrows; } }
        public ArrayList FormControls { set { _formcontrols = value; } get { return _formcontrols; } }
        public ArrayList EditMenusBar { set { _editmenusbar = value; } get { return _editmenusbar; } }
        public StringBuilder FormTables { set { _formtables = value; } get { return _formtables; } }
        public bool FormCheck { set { _formcheck = value; } get { return _formcheck; } }
        public bool IsFormTables { set { _isformtables = value; } get { return _isformtables; } }

        #endregion

        #region 构造函数

        public SheetForm(string id)
        {
            this.Id = id;
        }

        public SheetForm(string name, int subflag)
        {
            this.Id = name;
            SetAttribute(subflag, name, "post", true);
        }

        public SheetForm(int subflag, string name, string method)
        {
            this.Id = name;
            SetAttribute(subflag, name, method, true);
        }

        public SheetForm(int subflag, string name, bool formcheck)
        {
            this.Id = name;
            SetAttribute(subflag, name, "post", formcheck);
        }

        public SheetForm(int subflag, string name, string method, bool formcheck)
        {
            this.Id = name;
            SetAttribute(subflag, name, method, formcheck);
        }

        public void SetAttribute(int subflag, string name, string method, bool formcheck)
        {
            SubFlag = subflag;
            Name = name;
            Method = method;
            FormCheck = formcheck;
        }

        #endregion

        #region 重写方法

        private StringBuilder SetTopRowHtml(string valign)
        {
            StringBuilder html = new StringBuilder();
            StringBuilder rowshtml = new StringBuilder();
            foreach (object[] rowobj in FormRows)
            {
                string rowvalign = rowobj[1].ToString().Trim();
                if (rowvalign == valign)
                {
                    int i = 0;
                    int row = (int)rowobj[0];
                    StringBuilder rowlefthtml = new StringBuilder();
                    StringBuilder rowrighthtml = new StringBuilder();
                    foreach (object[] ctrlinfo in FormControls)
                    {
                        if (row == (int)ctrlinfo[2])
                        {
                            Control ctrl = (Control)ctrlinfo[1];
                            if (ctrlinfo[3].ToString().Trim() == "left")
                            {
                                if (i > 0) rowlefthtml.Append(@"<div class=""fl"">&nbsp;</div>");
                                rowlefthtml.Append(@"<div class=""fl"">" + ctrl.BoxHtml() + @"</div>");
                                toprows++;
                            }
                            if (ctrlinfo[3].ToString().Trim() == "right")
                            {
                                if (i > 0) rowrighthtml.Append(@"<div class=""fl"">&nbsp;</div>");
                                rowrighthtml.Append(@"<div class=""fl"">" + ctrl.BoxHtml() + @"</div>");
                                bottomrows++;
                            }
                            bottomhtml.Append(ctrl.BoxEndHtml());
                            i++;
                        }
                    }
                    rowshtml.Append(@"<div id=""FormRows" + row + @""">");
                    rowshtml.Append(@"<div class=""fl"">" + rowlefthtml + @"<div class=""clear""></div></div>");
                    rowshtml.Append(@"<div class=""fr"">" + rowrighthtml + @"<div class=""clear""></div></div>");
                    rowshtml.Append(@"<div class=""clear""></div>");
                    rowshtml.Append(@"</div>");
                }
            }

            html.Append(@"<div id=""FormRows"">");
            html.Append(rowshtml);
            html.Append(@"</div>");
            return html;
        }

        private StringBuilder SetButtonHtml()
        {
            StringBuilder html = new StringBuilder();
            html.Append(@"<div class=""buttons"">");
            html.Append(btnhtml);
            html.Append(@"<div class=""fl acccrow"">");
            html.Append(@"<div id=""" + Id + @"_Msg"" class=""fl comment""></div>");
            html.Append(@"</div>");
            html.Append(@"<div class=""clear""></div>");
            html.Append(@"</div>");
            return html;
        }

        public StringBuilder BoxHtml()
        {
            StringBuilder html = new StringBuilder();

            SetButtonHtml();

            html.Append(@"<form id=""" + Id + @""" name=""" + Name + @""" class=""pageform"" method=""" + Method + @""" ");
            if (Action.Trim() != "") html.Append(@"action=""" + Action + @""" ");
            if (Target.Trim() != "") html.Append(@"target=""" + Target + @""" ");
            if (FormCheck) html.Append(@"onsubmit=""return chkform();""");
            html.Append(@">");
            html.Append(@"<input type=""hidden"" name=""subflag"" value=""" + SubFlag + @""" />");
            html.Append(formhtml);

            html.Append(@"<table width=""100%"" height=""100%"" cellpadding=""0"" cellspacing=""0"" border=""0"" align=""center"">");
            html.Append(@"<tr height=""5""><td></td></tr>");
            html.Append(@"<tr><td>");
            html.Append(SetTopRowHtml("top"));
            html.Append(@"</td></tr>");

            if (IsFormTables)
            {
                html.Append(@"<tr height=""5""><td></td></tr>");

                html.Append(@"<tr height=""1""><td class=""dotline""></td></tr>");
                if (EditMenusBar.Count > 0)
                {
                    html.Append(@"<tr height=""32""><td valign=""top"" align=""left"">");
                    html.Append(SetEditMenusBar());
                    html.Append(@"</td></tr>");
                }
                else
                {
                    html.Append(@"<tr height=""5""><td></td></tr>");
                }
                html.Append(@"<tr height=""180""><td valign=""top"" align=""left"" class=""datframe"">");
                html.Append(FormTables);
                html.Append(@"</td></tr>");
                html.Append(@"<tr height=""5""><td></td></tr>");
            }

            html.Append(@"<tr><td>");
            html.Append(SetTopRowHtml("bottom"));
            html.Append(@"</td></tr>");
            html.Append(@"<tr height=""50""><td valign=""top"">");
            html.Append(SetButtonHtml());
            html.Append(@"</td></tr>");
            html.Append(@"</table>");

            html.Append(@"</form>");

            return html;
        }

        private StringBuilder SetEditMenusBar()
        {
            #region SetEditMenusBar
            StringBuilder html = new StringBuilder();

            html.Append(@"<div class=""infosbar"">");
            if (EditMenusBar.Count > 0)
            {
                string leftString = "", rightString = "";
                foreach (string[] item in EditMenusBar)
                {
                    if (item.Length >= 4)
                    {
                        string itemstr = "";
                        string itempos = item[0].ToString().Trim();
                        string itemtype = item[1].ToString().Trim();
                        string itemname = item[2].ToString().Trim();
                        string itemlink = item[3].ToString().Trim();
                        if (itemtype == "ico") itemstr = @"<div class=""fl icos""><div class=""ico"" style=""background:url(/images/ico/" + itemname + @") no-repeat;""></div></div>";
                        if (itemtype == "split") itemstr = @"<div class=""fl split"">|</div>";
                        if (itemtype == "link") itemstr = @"<div class=""fl menu""><a href=""" + itemlink + @""">" + itemname + @"</a></div>";
                        if (itemtype == "memo") itemstr = @"<div class=""fl memo"">" + itemname + @"</div>";
                        if (itempos == "left") leftString += itemstr;
                        if (itempos == "right") rightString += itemstr;
                    }
                }
                html.Append(leftString);
                html.Append(@"<div class=""fr menus"">");
                html.Append(rightString);
                html.Append(@"</div>");
                html.Append(@"<div class=""clear""></div>");
            }
            html.Append(@"</div>");

            return html;
            #endregion
        }

        public StringBuilder GetBoxEndHtml()
        {
            return bottomhtml;
        }

        public StringBuilder GetFormCheckScript()
        {
            StringBuilder js = new StringBuilder();

            if (FormControls.Count > 0)
            {
                js.Append(@"function chkform(){");
                js.Append(@"var subfrm = CMSC.$$(""" + this.Id + @""");");
                js.Append(@"var isok = true;");
                js.Append(@"var isselect = false;");
                foreach (object[] ctrlinfo in FormControls)
                {
                    Control ctrl = (Control)ctrlinfo[1];
                    js.Append(ctrl.CheckScript(1));
                }
                if (IsFormTables)
                {
                    js.Append(@"if(!CMSCTableEdit.submitCheck()){");
                    js.Append(@"showcomment(""" + this.Id + @"_Msg"",""存在不完善或不合法的数据行"");");
                    js.Append(@"isok = false;");
                    js.Append(@"} else {");
                    js.Append(@"backcomment(""" + this.Id + @"_Msg"","""");");
                    js.Append(@"} ");
                    js.Append(@"var subrows = CMSCTableEdit.submitRows();");
                    js.Append(@"if(subrows=="""") {");
                    js.Append(@"showcomment(""" + this.Id + @"_Msg"",""没有添加有效的数据行"");");
                    js.Append(@"isok = false;");
                    js.Append(@"} else {");
                    js.Append(@"CMSC.$$(""SelectRows"").value = subrows;");
                    js.Append(@"} ");
                }
                js.Append(@"return isok;");
                js.Append(@"} ");
            }
            else
            {
                js.Append(@"function chkform(){");
                js.Append(@"var subfrm = CMSC.$$(""" + this.Id + @""");");
                js.Append(@"var isok = true;");
                js.Append(@"return isok;");
                js.Append(@"} ");
            }

            string tipetitle = "";
            tipetitle = "提示:";
            js.Append(@"function showcomment(src, commtext) {");
            js.Append(@"CMSC.$$(src).className = ""fl redcomment"";");
            js.Append(@"CMSC.$$(src).style.paddingLeft = ""0px"";");
            js.Append(@"CMSC.$$(src).innerText = """ + tipetitle + @""" + commtext;");
            js.Append(@"}");
            js.Append(@"function backcomment(src, commtext) {");
            js.Append(@"CMSC.$$(src).className = ""fl comment"";");
            js.Append(@"CMSC.$$(src).innerText = commtext;");
            js.Append(@"}");

            return js;
        }

        #endregion

        #region 提供方法

        public void AddFormItem(string name, string value)
        {
            formhtml.Append(@"<input type=""hidden"" id=""" + name + @""" name=""" + name + @""" value=""" + value + @""" />");
        }

        public void AddRow(int rows, string valign)
        {
            FormRows.Add(new object[] { rows, valign });
        }

        public void AddControl(int rows, string align, object control)
        {
            Control ctrl = (Control)control;
            ctrl.Form = this.Id;
            string typename = ctrl.GetType().Name;
            FormControls.Add(new object[] { typename, ctrl, rows, align });
        }

        public void AddSubmitButton(string btnimage)
        {
            btnhtml.Append(@"<div class=""fl"">");
            btnhtml.Append(@"<input type=""image"" src=""" + btnimage + @""" border=""0"" />");
            btnhtml.Append(@"</div>");
            btnhtml.Append(@"<div class=""fl"">&nbsp;&nbsp;</div>");
        }

        #endregion

    }
}
时间: 2024-10-07 20:51:09

SheetForm.cs的相关文章

CS文件类头注释

1.修改unity生成CS文件的模板(模板位置:Unity\Editor\Data\Resources\ScriptTemplates 文件名:81-C# Script-NewBehaviourScript.cs) 本人将模板修改为如下图(红框内的内容) 备注:在"#"之间的为可替换的参数 2.修改模板可替换参数,在工程项目Asset文件夹在创建Editor文件 在文件夹下添加AddFileHeadComment.cs文件 内容如下 参数内容根据个人需求修改

CS 和 BS 的区别和优缺点

bs是浏览器(browser)和服务器(server) cs是静态客户端程序(client)和服务器(server) 区别在于,虽然同样是通过一个程序连接到服务器进行网络通讯,但是bs结构的,客户端运行在浏览器里,比如你看百度,就是通过浏览器.还有一些bs结构的应用,比如中国电信,以及一些电子商务平台.用bs结构的好处是,不必专门开发一个客户端界面,可用asp,php,jsp等比较快速开发web应用的程序开发. cs结构的,要做一个客户端.网络游戏基本上大多是cs结构,比如你玩传奇,要专门开个传

微软SQLHelper.cs类 中文版

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Xml; using System.Collections; namespace LiuYanBanT { public class SqlHelper

AssemblyInfo.cs文件详解

一.前言 .net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件.但我们实际上通过另一个形式操作该文件.那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”,然后修改信息. 二.作用 通过特性(Attribute)来设置程序集(dll文件)的常规信息,供查看或作为配置信息供程序内部使用. 三.详解 // 程序集标题 [assembly:AssemblyTitle("程序集标题")] // 程

全局程序集GlobalAssemblyInfo.cs进行版本控制(引)

原文出自:http://blog.csdn.net/oyi319/article/details/5753311 1.全局程序集GlobalAssemblyInfo.cs 我们编写的一个解决方案,通常会包含多个项目,而每个项目都有单独的程序集信息AssemblyInfo.cs.但是,你会发现一个问题,这些AssemblyInfo.cs当中有一部分在重复的,若能把它们提取出来放入一个单一文件中,修改AssemblyInfo中的诸如产品名.产品版本.版本等信息会变得轻松.那么,这个程序集信息文件,我

【141030】CS结构的VC++远程控制程序源代码

CS结构的VC++远程控制程序源代码,类似于pcAnywhere的程序,程序分为主服务端和主控端.主控端也就是客户端,由用户发送指令到服务端后来控制受控计算机.因为服务端是安装在受控机上的,其程序原理与著名的远程控制软件PcAnywhere非常相似,只是只完成了基本功能,有兴趣的可自己扩展程序吧. 客户端: 服务端: 完整源码下载地址:点击下载

《CS:APP》 chapter 6 The Memory Hierarchy笔记

The Memory Hierarchy 6.1 Storage Technologies The earliest IBM PCs didn't even have a hard disk. 让我惊奇的是早期的IBM直接没有硬盘... 6.1.1 Random-Access Memory Random-access memory(RAM) comes in two varieties- static anddynamic . Static RAM (SRAM) is faster and si

CS游戏2--三次杀人机会,警察不能杀人

#coding=utf-8 import randomimport time ''' 本文章主要目主要有三个,1,随机增加5个系统人物,所有的都是随机产生的,2,人物角色如果是警察,则不能杀死警察,3,有三次机会杀死敌方 涉及的知识点有,随机数的产生,字典的存储和遍历 ''' list_kill=[0,1,1,1]list_name=range(10)dir_weapen={"AK47":2000,"匕首":500,"小手枪":1000}dir_

Atitit 软件架构方法的进化与演进cs bs soa roa &#160;msa&#160; attilax总结

Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结 1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于多层架构 1 1.2. 主进化路线Cs>> bs >>  SOA>>MSA(微服务架构1 1.3. 1 1.4. 面向资源体系架构(ROA)1 1.4.1. 管道和过滤器风格(数据流风格)2 1.5. 数据抽象与面向对象风格(调用/返回风格)2 1.6. 基于事件的隐式调用