Exemplo n.º 1
0
        public static void CreateDom()
        {
            AscxDom ctlDom = new AscxDom();

            ctlDom.Header           = "<table style=\"width:100%;\">";
            ctlDom.Mapping_Boolean  = "<tr><td colspan=\"2\"><asp:CheckBox ID=\"_name_\" runat=\"server\" Checked=\"_defaultvalue_\" Text=\"_desc_\"  style=\"width:100%;\"/></td></tr>";
            ctlDom.Mapping_DateTime = "<tr><td align=\"right\">_desc_</td><td><asp:TextBox ID=\"_name_\" runat=\"server\" MaxLength=\"_lenght_\">_defaultvalue_</asp:TextBox></td></tr>";
            ctlDom.Mapping_Decimal  = ctlDom.Mapping_DateTime;
            ctlDom.Mapping_String   = ctlDom.Mapping_DateTime;
            ctlDom.Mapping_Unknow   = ctlDom.Mapping_DateTime;
            ctlDom.Footer           = "</table>";
            XmlSerializer xs = new XmlSerializer(typeof(AscxDom));
            MemoryStream  ms = new MemoryStream();

            xs.Serialize(ms, ctlDom);
            System.IO.File.WriteAllBytes("c:\\WebUserControl.KeelTemplate", ms.ToArray());
        }
Exemplo n.º 2
0
        public WebFormBaseGengerator(Project pjt1, string ctlname, List <SQLTableInfo> stltmp)
        {
            pjt = pjt1;
            stl = stltmp;
            Common.ShowInfo("正在准备控件" + ctlname);
            Solution2 slu     = (Solution2)Common.chDTE.Solution;
            string    itmname = ctlname + ".ascx";// Kit.GetProjectLaneExt(Kit.GetProjectLangType(pjt));

            if (itmname == null)
            {
                throw new Exception("错误002 不支持此项目类型");
            }

            pi = Kit.GetProjectItemByName(pjt, itmname);
            if (pi != null)
            {
                pi.Delete();
            }
            VsWebSite.VSWebSite ws = pjt.Object as VsWebSite.VSWebSite;
            try
            {
                DeleteFile(itmname);
                if (ws != null)
                {
                    pi = ws.AddFromTemplate("", "WebUserControl.vstemplate", Kit.GetProjectLangStr2(Kit.GetProjectLangType(pjt)), itmname, true, "", "");
                }
                else
                {
                    if (IsWebApplication())
                    {
                        //WAProjectExtender wpe = pjt.get_Extender("WebApplication") as WAProjectExtender;
                        string pit = slu.GetProjectItemTemplate("WebUserControl.zip", Kit.GetProjectLangStr(Kit.GetProjectLangType(pjt)) + "\\Web");
                        if (pit == null)
                        {
                            throw new Exception("错误003 未能得到对应项目模板,请确认此语言项目是否正确安装!");
                        }
                        pi = pjt.ProjectItems.AddFromTemplate(pit, itmname);
                    }
                }
                // pi = pjt.ProjectItems.AddFromTemplate(pit, itmname+".cs");
                //pi = pjt.ProjectItems.AddFromTemplate(pit, itmname);
            }
            catch (Exception)
            {
                pi = null;
            }
            if (pi == null)
            {
                pi = Kit.GetProjectItemByName(pjt, itmname);
            }
            if (pi == null)
            {
                return;
            }
            XmlSerializer xs = new XmlSerializer(typeof(AscxDom));
            XmlReader     xr = XmlReader.Create(new MemoryStream(Properties.Resources.WebUserControl));

            if (xs.CanDeserialize(xr))
            {
                ctlDom = xs.Deserialize(xr) as AscxDom;
            }
            if (IsWebApplication())
            {
                cns = new System.CodeDom.CodeNamespace(Kit.GetRootNamespace(pjt));
                cns.Comments.Add(new CodeCommentStatement("生成日期:" + DateTime.Now.ToString("yyyyMMddHHmmss")));
                cns.Comments.Add(new CodeCommentStatement("KeelKit版本:" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()));
                ccu.Namespaces.Add(cns);
                ctd           = new CodeTypeDeclaration(ctlname);
                ctd.IsPartial = true;
                ctd.IsClass   = true;
                cns.Types.Add(ctd);
            }
        }