private void CreateDefaultTemplate() { string text = string.Empty; StringBuilder builder = new StringBuilder(); DataList component = (DataList)base.Component; IDataSourceViewSchema dataSourceSchema = this.GetDataSourceSchema(); IDataSourceFieldSchema[] fields = null; if (dataSourceSchema != null) { fields = dataSourceSchema.GetFields(); } if ((fields != null) && (fields.Length > 0)) { foreach (IDataSourceFieldSchema schema2 in fields) { string name = schema2.Name; char[] chArray = new char[name.Length]; for (int i = 0; i < name.Length; i++) { char c = name[i]; if (char.IsLetterOrDigit(c) || (c == '_')) { chArray[i] = c; } else { chArray[i] = '_'; } } string str3 = new string(chArray); builder.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:Label Text='<%# {1} %>' runat=\"server\" id=\"{2}Label\"/><br />", new object[] { name, DesignTimeDataBinding.CreateEvalExpression(name, string.Empty), str3 })); builder.Append(Environment.NewLine); if (schema2.PrimaryKey && (component.DataKeyField.Length == 0)) { component.DataKeyField = name; } } builder.Append("<br />"); builder.Append(Environment.NewLine); text = builder.ToString(); } if ((text != null) && (text.Length > 0)) { try { component.ItemTemplate = base.GetTemplateFromText(text, component.ItemTemplate); } catch { } } }
private void AddTemplatesAndKeys(IDataSourceViewSchema schema) { StringBuilder builder = new StringBuilder(); StringBuilder builder2 = new StringBuilder(); StringBuilder builder3 = new StringBuilder(); IDesignerHost service = (IDesignerHost)base.Component.Site.GetService(typeof(IDesignerHost)); if (schema != null) { IDataSourceFieldSchema[] fields = schema.GetFields(); if ((fields != null) && (fields.Length > 0)) { ArrayList list = new ArrayList(); foreach (IDataSourceFieldSchema schema2 in fields) { string name = schema2.Name; char[] chArray = new char[name.Length]; for (int i = 0; i < name.Length; i++) { char c = name[i]; if (char.IsLetterOrDigit(c) || (c == '_')) { chArray[i] = c; } else { chArray[i] = '_'; } } string str2 = new string(chArray); string str3 = DesignTimeDataBinding.CreateEvalExpression(name, string.Empty); string str4 = DesignTimeDataBinding.CreateBindExpression(name, string.Empty); if (schema2.PrimaryKey || schema2.Identity) { if (this.EnableDynamicData) { builder.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:DynamicControl DataField=\"{0}\" runat=\"server\" id=\"{2}DynamicControl\" Mode=\"{1}\" /><br />", new object[] { name, "ReadOnly", str2 })); builder2.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:DynamicControl DataField=\"{0}\" runat=\"server\" id=\"{2}DynamicControl\" Mode=\"{1}\" /><br />", new object[] { name, "ReadOnly", str2 })); } else { builder.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:Label Text='<%# {1} %>' runat=\"server\" id=\"{2}Label1\" /><br />", new object[] { name, str3, str2 })); builder2.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:Label Text='<%# {1} %>' runat=\"server\" id=\"{2}Label\" /><br />", new object[] { name, str3, str2 })); } if (!schema2.Identity) { if (this.EnableDynamicData) { builder3.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:DynamicControl DataField=\"{0}\" runat=\"server\" id=\"{1}DynamicControl\" Mode=\"Insert\" ValidationGroup=\"Insert\" /><br />", new object[] { name, str2 })); } else { builder3.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:TextBox Text='<%# {1} %>' runat=\"server\" id=\"{2}TextBox\" /><br />", new object[] { name, str4, str2 })); } } } else if (this.EnableDynamicData) { builder.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:DynamicControl DataField=\"{0}\" runat=\"server\" id=\"{2}DynamicControl\" Mode=\"{1}\" /><br />", new object[] { name, "Edit", str2 })); builder2.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:DynamicControl DataField=\"{0}\" runat=\"server\" id=\"{2}DynamicControl\" Mode=\"{1}\" /><br />", new object[] { name, "ReadOnly", str2 })); builder3.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:DynamicControl DataField=\"{0}\" runat=\"server\" id=\"{1}DynamicControl\" Mode=\"Insert\" ValidationGroup=\"Insert\" /><br />", new object[] { name, str2 })); } else if ((schema2.DataType == typeof(bool)) || (schema2.DataType == typeof(bool?))) { builder.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:CheckBox Checked='<%# {1} %>' runat=\"server\" id=\"{2}CheckBox\" /><br />", new object[] { name, str4, str2 })); builder2.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:CheckBox Checked='<%# {1} %>' runat=\"server\" id=\"{2}CheckBox\" Enabled=\"false\" /><br />", new object[] { name, str4, str2 })); builder3.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:CheckBox Checked='<%# {1} %>' runat=\"server\" id=\"{2}CheckBox\" /><br />", new object[] { name, str4, str2 })); } else { builder.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:TextBox Text='<%# {1} %>' runat=\"server\" id=\"{2}TextBox\" /><br />", new object[] { name, str4, str2 })); builder2.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:Label Text='<%# {1} %>' runat=\"server\" id=\"{2}Label\" /><br />", new object[] { name, str4, str2 })); builder3.Append(string.Format(CultureInfo.InvariantCulture, "{0}: <asp:TextBox Text='<%# {1} %>' runat=\"server\" id=\"{2}TextBox\" /><br />", new object[] { name, str4, str2 })); } builder.Append(Environment.NewLine); builder2.Append(Environment.NewLine); builder3.Append(Environment.NewLine); if (schema2.PrimaryKey) { list.Add(name); } } bool flag = true; if (base.DesignerView.CanUpdate) { builder2.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "Edit", string.Empty, bool.FalseString, System.Design.SR.GetString("FormView_Edit") })); flag = false; } if (this.EnableDynamicData) { builder.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" ValidationGroup=\"Insert\" />", new object[] { "Update", string.Empty, bool.TrueString, System.Design.SR.GetString("FormView_Update") })); } else { builder.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "Update", string.Empty, bool.TrueString, System.Design.SR.GetString("FormView_Update") })); } builder.Append(" "); builder.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "Cancel", "Update", bool.FalseString, System.Design.SR.GetString("FormView_Cancel") })); if (base.DesignerView.CanDelete) { if (!flag) { builder2.Append(" "); } builder2.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "Delete", string.Empty, bool.FalseString, System.Design.SR.GetString("FormView_Delete") })); flag = false; } if (base.DesignerView.CanInsert) { if (!flag) { builder2.Append(" "); } builder2.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "New", string.Empty, bool.FalseString, System.Design.SR.GetString("FormView_New") })); } if (this.EnableDynamicData) { builder3.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" ValidationGroup=\"Insert\" />", new object[] { "Insert", string.Empty, bool.TrueString, System.Design.SR.GetString("FormView_Insert") })); } else { builder3.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "Insert", string.Empty, bool.TrueString, System.Design.SR.GetString("FormView_Insert") })); } builder3.Append(" "); builder3.Append(string.Format(CultureInfo.InvariantCulture, "<asp:LinkButton runat=\"server\" Text=\"{3}\" CommandName=\"{0}\" id=\"{1}{0}Button\" CausesValidation=\"{2}\" />", new object[] { "Cancel", "Insert", bool.FalseString, System.Design.SR.GetString("FormView_Cancel") })); builder.Append(Environment.NewLine); builder2.Append(Environment.NewLine); builder3.Append(Environment.NewLine); try { ((FormView)base.Component).EditItemTemplate = ControlParser.ParseTemplate(service, builder.ToString()); ((FormView)base.Component).ItemTemplate = ControlParser.ParseTemplate(service, builder2.ToString()); ((FormView)base.Component).InsertItemTemplate = ControlParser.ParseTemplate(service, builder3.ToString()); } catch { } int count = list.Count; if (count > 0) { string[] array = new string[count]; list.CopyTo(array, 0); ((FormView)base.Component).DataKeyNames = array; } } } }