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
                {
                }
            }
        }
示例#2
0
        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("&nbsp;");
                    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("&nbsp;");
                        }
                        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("&nbsp;");
                        }
                        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("&nbsp;");
                    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;
                    }
                }
            }
        }