private void GenMainBlockControl_3(TBlockItem BlockItem, String FormViewName) { bool isAjaxPage = false; if (FPage.FindControl("AjaxScriptManager1") != null) isAjaxPage = true; WebDataSource Master = (WebDataSource)FPage.FindControl("Master"); Master.DataMember = FClientData.ProviderName; Master.DataMember = Master.DataMember.Substring(Master.DataMember.IndexOf('.') + 1, Master.DataMember.Length - Master.DataMember.IndexOf('.') - 1); if (FormViewName == "wfvMaster") Master.AutoApply = true; BlockItem.wDataSource = Master; WebFormView wfvMaster = (WebFormView)FPage.FindControl(FormViewName); WebDefault aDefault = new WebDefault(); aDefault.ID = "wd" + BlockItem.TableName; aDefault.DataSourceID = Master.ID; aDefault.DataMember = Master.DataMember; WebValidate aValidate = new WebValidate(); aValidate.ID = "wv" + BlockItem.TableName; aValidate.DataSourceID = Master.ID; aValidate.DataMember = Master.DataMember; Boolean Done = false; //Generate RESX WebGridView aGridView = (WebGridView)FPage.FindControl("WgView"); if (aGridView == null) aGridView = (WebGridView)FPage.FindControl("WebGridView1"); if (aGridView == null) aGridView = (WebGridView)FPage.FindControl("wgvMaster"); if (aGridView != null) aGridView.WizardDesignMode = true; GenResx(Master); if (aGridView != null) aGridView.WizardDesignMode = false; if (FClientData.BaseFormName == "WSingle3" || FClientData.BaseFormName == "WSingle4" || FClientData.BaseFormName == "WMasterDetail3" || FClientData.BaseFormName == "WMasterDetail8" || FClientData.BaseFormName == "VBWebCMasterDetail8") { aGridView = null; } //DataSet Dset = new DataSet(); //if (FPage.Site.DesignMode) //{ // Dset = GetDD(wfvMaster); //} IDbConnection conn = WzdUtils.AllocateConnection(FClientData.DatabaseName, FClientData.DatabaseType, false); InfoCommand aInfoCommand = new InfoCommand(FClientData.DatabaseType); aInfoCommand.Connection = WzdUtils.AllocateConnection(FClientData.DatabaseName, FClientData.DatabaseType, true); //aInfoCommand.Connection = conn; String OWNER = String.Empty, SS = this.FClientData.RealTableName, TableName = String.Empty; if (SS.Contains(".")) { OWNER = WzdUtils.GetToken(ref SS, new char[] { '.' }); TableName = SS; } aInfoCommand.CommandText = "Select * from COLDEF where TABLE_NAME='" + TableName + "' OR TABLE_NAME='" + OWNER + "." + TableName + "'"; IDbDataAdapter DA = DBUtils.CreateDbDataAdapter(aInfoCommand); DataSet dsColdef = new DataSet(); WzdUtils.FillDataAdapter(FClientData.DatabaseType, DA, dsColdef, this.FClientData.TableName); foreach (TBlockFieldItem aFieldItem in BlockItem.BlockFieldItems) { if (!Done) { GenDefault(aFieldItem, aDefault, aValidate); CreateQueryField(aFieldItem, "", null, BlockItem.TableName); } } Done = true; //GridView System.Web.UI.WebControls.BoundField aBoundField = null; System.Web.UI.WebControls.TemplateField aTemplateField = null; List<string> KeyFields = new List<string>(); if (aGridView != null) { while (aGridView.Columns.Count > 1) aGridView.Columns.RemoveAt(1); foreach (TBlockFieldItem BFI in BlockItem.BlockFieldItems) { if ((BFI.RefValNo != null && BFI.RefValNo != "") || BFI.RefField != null) { String DataSourceID = GenWebDataSource(BFI, BlockItem.TableName, "RefVal", ""); aTemplateField = new System.Web.UI.WebControls.TemplateField(); aTemplateField.HeaderText = BFI.Description; aTemplateField.SortExpression = BFI.DataField; if (aTemplateField.HeaderText == "") aTemplateField.HeaderText = BFI.DataField; if (isAjaxPage) { aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewAjaxRefValEditItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FAjaxRefValList, FClientData.DatabaseType, aGridView, FLabelList); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewAjaxRefValItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FAjaxRefValList, FClientData.DatabaseType, aGridView, FLabelList); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewAjaxRefValFooterItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FAjaxRefValList, FClientData.DatabaseType, aGridView, FLabelList); } else { aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewRefValEditItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FWebRefValList, FClientData.DatabaseType, aGridView); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewRefValItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FWebRefValList, FClientData.DatabaseType, aGridView); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewRefValFooterItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FWebRefValList, FClientData.DatabaseType, aGridView); } aGridView.Columns.Add(aTemplateField); } else if (BFI.ControlType == "ComboBox") { String DataSourceID = GenWebDataSource(BFI, BFI.ComboEntityName, "ComboBox", ""); aTemplateField = new System.Web.UI.WebControls.TemplateField(); aTemplateField.HeaderText = BFI.Description; aTemplateField.SortExpression = BFI.DataField; if (aTemplateField.HeaderText == "") aTemplateField.HeaderText = BFI.DataField; aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewComboBoxEditItemTemplate", BFI, BlockItem.TableName, DataSourceID, FMyWebDropDownList, FLabelList); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewComboBoxItemTemplate", BFI, BlockItem.TableName, DataSourceID, FMyWebDropDownList, FLabelList); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewComboBoxFooterItemTemplate", BFI, BlockItem.TableName, DataSourceID, FMyWebDropDownList, FLabelList); aGridView.Columns.Add(aTemplateField); } else if (BFI.ControlType == "ValidateBox") { aTemplateField = new System.Web.UI.WebControls.TemplateField(); aTemplateField.HeaderText = BFI.Description; aTemplateField.SortExpression = BFI.DataField; if (aTemplateField.HeaderText == "") aTemplateField.HeaderText = BFI.DataField; aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewValidateBoxEditItemTemplate", BFI, BlockItem.TableName, aValidate, FWebValidateBoxList, FLabelList); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewValidateBoxItemTemplate", BFI, BlockItem.TableName, aValidate, FWebValidateBoxList, FLabelList); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewValidateBoxFooterItemTemplate", BFI, BlockItem.TableName, aValidate, FWebValidateBoxList, FLabelList); aGridView.Columns.Add(aTemplateField); } else if (BFI.ControlType == "CheckBox") { aTemplateField = new System.Web.UI.WebControls.TemplateField(); aTemplateField.HeaderText = BFI.Description; aTemplateField.SortExpression = BFI.DataField; if (aTemplateField.HeaderText == "") aTemplateField.HeaderText = BFI.DataField; aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewCheckBoxEditItemTemplate", BFI, BlockItem.TableName, FWebCheckBoxList, FLabelList); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewCheckBoxItemTemplate", BFI, BlockItem.TableName, FWebCheckBoxList, FLabelList); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewCheckBoxFooterItemTemplate", BFI, BlockItem.TableName, FWebCheckBoxList, FLabelList); aGridView.Columns.Add(aTemplateField); } else { if (BFI.DataType == typeof(DateTime) || (BFI.ControlType != null && BFI.ControlType.ToUpper() == "DATETIMEBOX")) { aTemplateField = new System.Web.UI.WebControls.TemplateField(); aTemplateField.HeaderText = BFI.Description; aTemplateField.SortExpression = BFI.DataField; if (aTemplateField.HeaderText == "") aTemplateField.HeaderText = BFI.DataField; if (isAjaxPage) { aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewAjaxDateTimeEditItemTemplate", BFI, BlockItem.TableName, FAjaxDateTimePickerList, FLabelList, aGridView); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewAjaxDateTimeItemTemplate", BFI, BlockItem.TableName, FAjaxDateTimePickerList, FLabelList, aGridView); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewAjaxDateTimeFooterItemTemplate", BFI, BlockItem.TableName, FAjaxDateTimePickerList, FLabelList, aGridView); } else { aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewDateTimeEditItemTemplate", BFI, BlockItem.TableName, FWebDateTimePickerList, FLabelList, aGridView); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewDateTimeItemTemplate", BFI, BlockItem.TableName, FWebDateTimePickerList, FLabelList, aGridView); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewDateTimeFooterItemTemplate", BFI, BlockItem.TableName, FWebDateTimePickerList, FLabelList, aGridView); } aGridView.Columns.Add(aTemplateField); } else { if (BFI.EditMask != null && BFI.EditMask != String.Empty) { aTemplateField = new System.Web.UI.WebControls.TemplateField(); aTemplateField.HeaderText = BFI.Description; aTemplateField.SortExpression = BFI.DataField; if (aTemplateField.HeaderText == "") aTemplateField.HeaderText = BFI.DataField; aTemplateField.EditItemTemplate = new WebControlTemplate("WebGridViewTextBoxEditItemTemplate", BFI, BlockItem.TableName, FWebTextBoxList, FLabelList, aGridView); aTemplateField.ItemTemplate = new WebControlTemplate("WebGridViewTextBoxItemTemplate", BFI, BlockItem.TableName, FWebTextBoxList, FLabelList, aGridView); aTemplateField.FooterTemplate = new WebControlTemplate("WebGridViewTextBoxFooterItemTemplate", BFI, BlockItem.TableName, FWebTextBoxList, FLabelList, aGridView); aGridView.Columns.Add(aTemplateField); } else { aBoundField = new System.Web.UI.WebControls.BoundField(); aBoundField.DataField = BFI.DataField; aBoundField.SortExpression = BFI.DataField; aBoundField.HeaderText = BFI.Description; //Field.HeaderStyle.Width = BFI.Length * ColumnWidthPixel; if (aBoundField.HeaderText == "") aBoundField.HeaderText = BFI.DataField; aGridView.Columns.Add(aBoundField); } } } } } IComponentChangeService FComponentChangeService = (IComponentChangeService)FDesignerHost.RootComponent.Site.GetService(typeof(IComponentChangeService)); //AjaxTools.AjaxGridView aAjaxGridView = (AjaxTools.AjaxGridView)FPage.FindControl("AjaxGridView1"); //if (aAjaxGridView != null) //{ // DataTable srcTable = GetDesignTable(Master); // bool flag = true; // foreach (TBlockFieldItem BFI in BlockItem.BlockFieldItems) // { // AjaxTools.ExtGridColumn extCol = new AjaxTools.ExtGridColumn(); // extCol.AllowSort = false; // extCol.ColumnName = string.Format("col{0}", BFI.DataField); // extCol.DataField = BFI.DataField; // extCol.ExpandColumn = true; // extCol.HeaderText = BFI.Description; // extCol.IsKeyField = BFI.IsKey; // extCol.IsKeyField = IsKeyField(BFI.DataField, srcTable.PrimaryKey); // extCol.NewLine = flag; // extCol.Resizable = true; // extCol.TextAlign = "left"; // extCol.Visible = true; // extCol.Width = 75; // this.FieldTypeSelector(BFI.DataType, extCol); // aAjaxGridView.Columns.Add(extCol); // flag = !flag; // } // NotifyRefresh(200); // FComponentChangeService.OnComponentChanged(aAjaxGridView, null, "", "M"); //} if (wfvMaster != null) { //wfvMaster.EditItemTemplate = new MyTemplate("WebFormViewEditItemTemplate", BFI, BlockItem.TableName, DataSourceID, FClientData.Owner.GlobalConnection, FWebRefValList); FormViewDesigner aDesigner = FDesignerHost.GetDesigner(wfvMaster) as FormViewDesigner; //FormView foreach (TemplateGroup tempGroup in aDesigner.TemplateGroups) { foreach (TemplateDefinition tempDefin in tempGroup.Templates) { if (tempDefin.Name == "EditItemTemplate" || tempDefin.Name == "InsertItemTemplate" || tempDefin.Name == "ItemTemplate") { StringBuilder builder = new StringBuilder(); string content = tempDefin.Content; if (content == null || content.Length == 0) continue; string[] ctrlTexts = content.Split("\r\n".ToCharArray()); //Control[] ctrls = ControlParser.ParseControls(host, content); int i = 0; int j = 0; int m = wfvMaster.LayOutColNum * 2; List<string> lists = new List<string>(); String ExtraName = ""; foreach (TBlockFieldItem aFieldItem in BlockItem.BlockFieldItems) { String FormatStyle = FormatEditMask(aFieldItem.EditMask); if (!Done) { GenDefault(aFieldItem, aDefault, aValidate); CreateQueryField(aFieldItem, "", null, BlockItem.TableName); } lists.Add(aFieldItem.DataField); if ((aFieldItem.RefValNo != null && aFieldItem.RefValNo != "") || aFieldItem.RefField != null) { String DataSourceID = GenWebDataSource(aFieldItem, BlockItem.TableName, "RefVal", ""); switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "wrv" + BlockItem.TableName + aFieldItem.DataField + ExtraName; aViewField.FieldName = aFieldItem.DataField; wfvMaster.Fields.Add(aViewField); } break; case "ItemTemplate": ExtraName = ""; break; } DataSet aDataSet = new DataSet(); StringBuilder RefColumns = new StringBuilder("<Columns>"); aInfoCommand.CommandText = String.Format("Select * from SYS_REFVAL_D1 where REFVAL_NO = '{0}'", aFieldItem.RefValNo); WzdUtils.FillDataAdapter(FClientData.DatabaseType, DA, aDataSet, aFieldItem.RefValNo); if (aDataSet != null && aDataSet.Tables.Count > 0 && aDataSet.Tables[0].Rows.Count > 0) { foreach (DataRow DR in aDataSet.Tables[0].Rows) { RefColumns.Append(Environment.NewLine); RefColumns.Append("<InfoLight:WebRefColumn ColumnName=\"" + DR["FIELD_NAME"].ToString() + "\" HeadText=\"" + DR["HEADER_TEXT"].ToString() + "\" Width=\"100\" />"); } RefColumns.Append(Environment.NewLine); RefColumns.Append("</Columns>"); } else { RefColumns = new StringBuilder(""); } if (tempDefin.Name == "ItemTemplate") { String S6 = String.Empty; if (isAjaxPage) { S6 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); } else { S6 = String.Format("<InfoLight:WebRefVal ID=\"{0}\" runat=\"server\" BindingValue='<%# Bind(\"{1}\"{5}) %>' " + "ButtonImageUrl=\"../Image/refval/RefVal.gif\" DataBindingField=\"{1}\" DataSourceID=\"{2}\" " + "DataTextField=\"{3}\" DataValueField=\"{4}\" ReadOnly=\"True\" ResxDataSet=\"\" " + "ResxFilePath=\"\" UseButtonImage=\"True\" Width=\"130px\" BackColor=\"Transparent\" BorderStyle=\"None\"> " + RefColumns.ToString() + "</InfoLight:WebRefVal>", "wrv" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, DataSourceID, FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString(), FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString(), FormatStyle ); } lists.Add(S6); } else { String S1 = String.Empty; if (isAjaxPage) { S1 = String.Format("<AjaxTools:AjaxRefVal ID=\"{0}\" runat=\"server\" BindingValue='<%# Bind(\"{1}\"{5}) %>' " + "DataSourceID=\"{2}\" " + "DataTextField=\"{3}\" DataValueField=\"{4}\" ResxDataSet=\"\">" + RefColumns.ToString() + "</AjaxTools:AjaxRefVal>", "arv" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, DataSourceID, FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString(), FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString(), FormatStyle ); } else { S1 = String.Format("<InfoLight:WebRefVal ID=\"{0}\" runat=\"server\" BindingValue='<%# Bind(\"{1}\"{5}) %>' " + "ButtonImageUrl=\"../Image/refval/RefVal.gif\" DataBindingField=\"{1}\" DataSourceID=\"{2}\" " + "DataTextField=\"{3}\" DataValueField=\"{4}\" ReadOnly=\"False\" ResxDataSet=\"\" " + "ResxFilePath=\"\" UseButtonImage=\"True\"> " + RefColumns.ToString() + "</InfoLight:WebRefVal>", "wrv" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, DataSourceID, FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString(), FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString(), FormatStyle ); } lists.Add(S1); } } else if (aFieldItem.ControlType == "ComboBox") { String DataSourceID = GenWebDataSource(aFieldItem, aFieldItem.ComboEntityName, "ComboBox", ""); String S5 = ""; switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; S5 = String.Format("<InfoLight:WebDropDownList id=\"{0}\" runat=\"server\" DataMember=\"{1}\" DataSourceID=\"{2}\" __designer:wfdid=\"w3\" DataTextField=\"{3}\" Filter DataValueField=\"{4}\" AutoInsertEmptyData=\"False\" SelectedValue='<%# Bind(\"{5}\"{6})%>' Width=\"130px\"></InfoLight:WebDropDownList>", "wdd" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.ComboEntityName, DataSourceID, aFieldItem.ComboTextField, aFieldItem.ComboValueField, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; S5 = String.Format("<InfoLight:WebDropDownList id=\"{0}\" runat=\"server\" DataMember=\"{1}\" DataSourceID=\"{2}\" __designer:wfdid=\"w3\" DataTextField=\"{3}\" Filter DataValueField=\"{4}\" AutoInsertEmptyData=\"False\" SelectedValue='<%# Bind(\"{5}\"{6}) %>' Width=\"130px\"></InfoLight:WebDropDownList>", "wdd" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.ComboEntityName, DataSourceID, aFieldItem.ComboTextField, aFieldItem.ComboValueField, aFieldItem.DataField, FormatStyle); if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "wdd" + BlockItem.TableName + aFieldItem.DataField + ExtraName; aViewField.FieldName = aFieldItem.DataField; wfvMaster.Fields.Add(aViewField); } break; case "ItemTemplate": ExtraName = ""; S5 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } lists.Add(S5); } else if (aFieldItem.ControlType == "ValidateBox") { String S6 = ""; switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; S6 = String.Format("<InfoLight:WebValidateBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{3}) %>' ValidateField=\"{1}\" WebValidateID=\"{2}\" MaxLength=\"{4}\"></InfoLight:WebValidateBox></td>", "wvb" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, aValidate.ID, FormatStyle, aFieldItem.Length); break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "wdd" + BlockItem.TableName + aFieldItem.DataField + ExtraName; aViewField.FieldName = aFieldItem.DataField; wfvMaster.Fields.Add(aViewField); } S6 = String.Format("<InfoLight:WebValidateBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{3}) %>' ValidateField=\"{1}\" WebValidateID=\"{2}\" MaxLength=\"{4}\"></InfoLight:WebValidateBox></td>", "wvb" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, aValidate.ID, FormatStyle, aFieldItem.Length); break; case "ItemTemplate": ExtraName = ""; S6 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } lists.Add(S6); } else if (aFieldItem.ControlType == "CheckBox") { String S6 = ""; switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; S6 = String.Format("<asp:CheckBox ID=\"{0}\" runat=\"server\" Checked='<%# Bind(\"{1}\"{2}) %>'></asp:CheckBox></td>", "cb" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; S6 = String.Format("<asp:CheckBox ID=\"{0}\" runat=\"server\" Checked='<%# Bind(\"{1}\"{2}) %>'></asp:CheckBox></td>", "wvb" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "ItemTemplate": ExtraName = ""; S6 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } lists.Add(S6); } else { if (aFieldItem.DataType == typeof(DateTime) || (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) { String DataTimeType = ""; if (aFieldItem.EditMask == "ShortDate") DataTimeType = "ShortDate"; else if (aFieldItem.EditMask == "LongDate") DataTimeType = "ShortDate"; else DataTimeType = "None"; String S4 = ""; if (isAjaxPage) { switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" Text='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></AjaxTools:AjaxDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" DateString='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></AjaxTools:AjaxDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" Text='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></AjaxTools:AjaxDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" DateString='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></AjaxTools:AjaxDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "ItemTemplate": ExtraName = ""; S4 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } } else { switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" Text='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></InfoLight:WebDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" DateString='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></InfoLight:WebDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" Text='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></InfoLight:WebDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" DateString='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></InfoLight:WebDateTimePicker>", "wdtp" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "ItemTemplate": ExtraName = ""; S4 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } } lists.Add(S4); } else { if (tempDefin.Name == "ItemTemplate") { String S3 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); lists.Add(S3); } else { if (tempDefin.Name == "InsertItemTemplate") { if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "tb" + aFieldItem.DataField; aViewField.FieldName = aFieldItem.DataField; wfvMaster.Fields.Add(aViewField); } } String S4 = String.Format("<asp:TextBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>' MaxLength=\"{3}\"></asp:TextBox>", "tb" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle, aFieldItem.Length); lists.Add(S4); } } } } Done = true; j = j * 2; if (m > 0) { builder.Append("<table>"); } foreach (string ctrlText in lists.ToArray()) { if (ctrlText == null || ctrlText.Length == 0) continue; if (m > 0) { if (i % m == 0) { builder.Append("<tr>"); } builder.Append("<td>"); } // add dd string ddText = ""; if (tempDefin.Name != "ItemTemplate") { ddText = GetDDText(ctrlText, BlockItem, tempDefin.Name); } else { ddText = GetDDText(ctrlText, BlockItem, tempDefin.Name); } builder.Append(ddText); builder.Append("\r\n"); if (m > 0) { builder.Append("</td>"); if (i % m == m - 1) { builder.Append("</tr>"); } } i++; } if (m > 0) { if (i % m != 0) { int n = m - (i % m); int q = 0; while (q < n) { builder.Append("<td></td>"); q++; } builder.Append("</tr>"); } builder.Append("</table>"); } tempDefin.Content = builder.ToString(); } } } } Object aAjaxLayout = FPage.FindControl("AjaxLayout1"); if (aAjaxLayout != null) { aAjaxLayout.GetType().GetProperty("Title").SetValue(aAjaxLayout, FClientData.FormTitle, null); FComponentChangeService.OnComponentChanged(aAjaxLayout, null, "", "M"); } Object aAjaxFormView = FPage.FindControl("AjaxFormView1"); if (aAjaxFormView != null) { bool flag = true; DataTable srcTable = FWizardDataSet.RealDataSet.Tables[BlockItem.TableName]; IList iFields = aAjaxFormView.GetType().GetProperty("Fields").GetValue(aAjaxFormView, null) as IList; foreach (TBlockFieldItem BFI in BlockItem.BlockFieldItems) { Type fieldsType = aAjaxFormView.GetType().GetProperty("Fields").PropertyType.GetProperties()[0].PropertyType; object extCol = Activator.CreateInstance(fieldsType); if (BFI.CheckNull == "Y") extCol.GetType().GetProperty("AllowNull").SetValue(extCol, false, null); else extCol.GetType().GetProperty("AllowNull").SetValue(extCol, true, null); if (BFI.Description != null && BFI.Description != String.Empty) extCol.GetType().GetProperty("Caption").SetValue(extCol, BFI.Description, null); else extCol.GetType().GetProperty("Caption").SetValue(extCol, BFI.DataField, null); extCol.GetType().GetProperty("DataField").SetValue(extCol, BFI.DataField, null); extCol.GetType().GetProperty("DefaultValue").SetValue(extCol, BFI.DefaultValue, null); extCol.GetType().GetProperty("FieldControlId").SetValue(extCol, string.Format("ctrl{0}", BFI.DataField), null); extCol.GetType().GetProperty("IsKeyField").SetValue(extCol, IsKeyField(BFI.DataField, srcTable.PrimaryKey), null); extCol.GetType().GetProperty("NewLine").SetValue(extCol, flag, null); //extCol.GetType().GetProperty("Resizable").SetValue(extCol, true, null); //extCol.GetType().GetProperty("TextAlign").SetValue(extCol, "left", null); //extCol.GetType().GetProperty("Visible").SetValue(extCol, true, null); extCol.GetType().GetProperty("Width").SetValue(extCol, 140, null); if ((BFI.RefValNo != null && BFI.RefValNo != "") || BFI.RefField != null) { String DataSourceID = GenWebDataSource(BFI, BlockItem.TableName, "RefVal", "", true); String extComboBox = GenExtComboBox(BFI, BlockItem.TableName, "ExtRefVal", "", DataSourceID); extCol.GetType().GetProperty("EditControlId").SetValue(extCol, extComboBox, null); extCol.GetType().GetProperty("Editor").SetValue(extCol, extCol.GetType().GetProperty("Editor").PropertyType.GetField("ComboBox").GetValue(extCol), null); } else if (BFI.ControlType == "ComboBox") { String DataSourceID = GenWebDataSource(BFI, BlockItem.TableName, "ComboBox", "", true); String extComboBox = GenExtComboBox(BFI, BlockItem.TableName, "ExtComboBox", "", DataSourceID); extCol.GetType().GetProperty("EditControlId").SetValue(extCol, extComboBox, null); extCol.GetType().GetProperty("Editor").SetValue(extCol, extCol.GetType().GetProperty("Editor").PropertyType.GetField("ComboBox").GetValue(extCol), null); } this.FieldTypeSelector(BFI.DataType, extCol, BFI.ControlType); iFields.Add(extCol); flag = !flag; } NotifyRefresh(200); FComponentChangeService.OnComponentChanged(aAjaxFormView, null, "", "M"); } FWebDefaultList.Add(aDefault); FWebValidateList.Add(aValidate); NotifyRefresh(200); FComponentChangeService.OnComponentChanged(wfvMaster, null, "", "M"); FComponentChangeService.OnComponentChanged(Master, null, "", "M"); FComponentChangeService.OnComponentChanged(aGridView, null, "", "M"); }
private void GenDetailBlock_2() { MWizard.TBlockItem BlockItem = null; foreach (TBlockItem B in FClientData.Blocks) { if (B.wDataSource == null) { BlockItem = B; break; } } #if VS90 object oDetail = FDesignerDocument.webControls.item("Detail", 0); WebDevPage.IHTMLElement eDetail = null; if (oDetail == null || !(oDetail is WebDevPage.IHTMLElement)) return; eDetail = (WebDevPage.IHTMLElement)oDetail; eDetail.setAttribute("DataMember", BlockItem.TableName, 0); WebDevPage.IHTMLElement FormView = (WebDevPage.IHTMLElement)FDesignerDocument.webControls.item("wfvDetail", 0); if (FormView != null) { WebDefault Default = new WebDefault(); Default.ID = "wd" + WzdUtils.RemoveSpecialCharacters(BlockItem.TableName); Default.DataSourceID = eDetail.getAttribute("ID", 0).ToString(); Default.DataMember = BlockItem.TableName; WebValidate Validate = new WebValidate(); Validate.ID = "wv" + WzdUtils.RemoveSpecialCharacters(BlockItem.TableName); Validate.DataSourceID = eDetail.getAttribute("ID", 0).ToString(); Validate.DataMember = BlockItem.TableName; WebQueryFiledsCollection QueryFields = new WebQueryFiledsCollection(null, typeof(QueryField)); WebQueryColumnsCollection QueryColumns = new WebQueryColumnsCollection(null, typeof(QueryColumns)); foreach (TBlockFieldItem fielditem in BlockItem.BlockFieldItems) { GenDefault(fielditem, Default, Validate); GenQuery(fielditem, QueryFields, QueryColumns, BlockItem.TableName); } WebDevPage.IHTMLElement Page = FDesignerDocument.pageContentElement; InsertControl(Page, Default); InsertControl(Page, Validate); WebDevPage.IHTMLElement Navigator = (WebDevPage.IHTMLElement)FDesignerDocument.webControls.item("WebNavigator1", 0); if (Navigator != null) { SetCollectionValue(Navigator, typeof(WebNavigator).GetProperty("QueryFields"), QueryFields); } WebDevPage.IHTMLElement ClientQuery = (WebDevPage.IHTMLElement)FDesignerDocument.webControls.item("WebClientQuery1", 0); if (ClientQuery != null) { SetCollectionValue(ClientQuery, typeof(WebClientQuery).GetProperty("Columns"), QueryColumns); } FormView = (WebDevPage.IHTMLElement)FDesignerDocument.webControls.item("wfvDetail", 0); RefreshFormView(FormView, BlockItem); } #else bool isAjaxPage = false; if (FPage.FindControl("AjaxScriptManager1") != null) isAjaxPage = true; WebDataSource Detail = (WebDataSource)FPage.FindControl("Detail"); Detail.DataMember = BlockItem.TableName; WebFormView WebFormView2 = (WebFormView)FPage.FindControl("wfvDetail"); if (WebFormView2 == null) { return; } //WebFormView2.DataMember = BlockItem.TableName; WebDefault aDefault = new WebDefault(); aDefault.ID = "wd" + BlockItem.TableName; aDefault.DataSourceID = Detail.ID; aDefault.DataMember = Detail.DataMember; WebValidate aValidate = (WebValidate)FPage.FindControl("WebDetailValidate"); if (aValidate == null) { aValidate = new WebValidate(); aValidate.ID = "wv" + BlockItem.TableName; } aValidate.DataSourceID = Detail.ID; aValidate.DataMember = Detail.DataMember; IDbConnection conn = WzdUtils.AllocateConnection(FClientData.DatabaseName, FClientData.DatabaseType, false); InfoCommand aInfoCommand = new InfoCommand(FClientData.DatabaseType); aInfoCommand.Connection = WzdUtils.AllocateConnection(FClientData.DatabaseName, FClientData.DatabaseType, true); //aInfoCommand.Connection = conn; String OWNER = String.Empty, SS = this.FClientData.RealTableName, TableName = String.Empty; if (SS.Contains(".")) { OWNER = WzdUtils.GetToken(ref SS, new char[] { '.' }); TableName = SS; } aInfoCommand.CommandText = "Select * from COLDEF where TABLE_NAME='" + TableName + "' OR TABLE_NAME='" + OWNER + "." + TableName + "'"; IDbDataAdapter DA = DBUtils.CreateDbDataAdapter(aInfoCommand); DataSet dsColdef = new DataSet(); WzdUtils.FillDataAdapter(FClientData.DatabaseType, DA, dsColdef, this.FClientData.TableName); FormViewDesigner aDesigner = FDesignerHost.GetDesigner(WebFormView2) as FormViewDesigner; Boolean Done = false; WebDataSourceDesigner aWebDataSourceDesigner = FDesignerHost.GetDesigner(Detail) as WebDataSourceDesigner; if (aWebDataSourceDesigner != null) aWebDataSourceDesigner.RefreshSchema(true); foreach (TemplateGroup tempGroup in aDesigner.TemplateGroups) { foreach (TemplateDefinition tempDefin in tempGroup.Templates) { if (tempDefin.Name == "EditItemTemplate" || tempDefin.Name == "InsertItemTemplate" || tempDefin.Name == "ItemTemplate") { StringBuilder builder = new StringBuilder(); string content = tempDefin.Content; if (content == null || content.Length == 0) continue; string[] ctrlTexts = content.Split("\r\n".ToCharArray()); int i = 0; int j = 0; int m = WebFormView2.LayOutColNum * 2; List<string> lists = new List<string>(); String ExtraName = ""; foreach (TBlockFieldItem aFieldItem in BlockItem.BlockFieldItems) { if (!Done) { GenDefault(aFieldItem, aDefault, aValidate); } lists.Add(aFieldItem.DataField); if ((aFieldItem.RefValNo != null && aFieldItem.RefValNo != "") || aFieldItem.RefField != null) { String DataSourceID = GenWebDataSource(aFieldItem, BlockItem.TableName, "RefVal", ""); switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "wrv2" + BlockItem.TableName + aFieldItem.DataField + ExtraName; aViewField.FieldName = aFieldItem.DataField; WebFormView2.Fields.Add(aViewField); } break; case "ItemTemplate": ExtraName = ""; break; } DataSet aDataSet = new DataSet(); StringBuilder RefColumns = new StringBuilder("<Columns>"); aInfoCommand.CommandText = String.Format("Select * from SYS_REFVAL_D1 where REFVAL_NO = '{0}'", aFieldItem.RefValNo); WzdUtils.FillDataAdapter(FClientData.DatabaseType, DA, aDataSet, aFieldItem.RefValNo); if (aDataSet != null && aDataSet.Tables.Count > 0 && aDataSet.Tables[0].Rows.Count > 0) { foreach (DataRow DR in aDataSet.Tables[0].Rows) { RefColumns.Append(Environment.NewLine); RefColumns.Append("<InfoLight:WebRefColumn ColumnName=\"" + DR["FIELD_NAME"].ToString() + "\" HeadText=\"" + DR["HEADER_TEXT"].ToString() + "\" Width=\"100\" />"); } RefColumns.Append(Environment.NewLine); RefColumns.Append("</Columns>"); } else { RefColumns = new StringBuilder(""); } if (tempDefin.Name == "ItemTemplate") { String FormatStyle = FormatEditMask(aFieldItem.EditMask); String S6 = String.Empty; if (isAjaxPage) { S6 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); } else { S6 = String.Format("<InfoLight:WebRefVal ID=\"{0}\" runat=\"server\" BindingValue='<%# Bind(\"{1}\"{5}) %>' " + "ButtonImageUrl=\"../Image/refval/RefVal.gif\" DataBindingField=\"{1}\" DataSourceID=\"{2}\" " + "DataTextField=\"{3}\" DataValueField=\"{4}\" ReadOnly=\"True\" ResxDataSet=\"\" " + "ResxFilePath=\"\" UseButtonImage=\"True\" Width=\"130px\" BackColor=\"Transparent\" BorderStyle=\"None\"> " + RefColumns.ToString() + "</InfoLight:WebRefVal>", "wrv2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, DataSourceID, FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString(), FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString(), FormatStyle ); } lists.Add(S6); } else { String FormatStyle = FormatEditMask(aFieldItem.EditMask); String S1 = String.Empty; if (isAjaxPage) { S1 = String.Format("<AjaxTools:AjaxRefVal ID=\"{0}\" runat=\"server\" BindingValue='<%# Bind(\"{1}\"{5}) %>' " + "DataSourceID=\"{2}\" " + "DataTextField=\"{3}\" DataValueField=\"{4}\" ResxDataSet=\"\">" + RefColumns.ToString() + "</AjaxTools:AjaxRefVal>", "arv2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, DataSourceID, FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString(), FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString(), FormatStyle ); } else { S1 = String.Format("<InfoLight:WebRefVal ID=\"{0}\" runat=\"server\" BindingValue='<%# Bind(\"{1}\"{5}) %>' " + "ButtonImageUrl=\"../Image/refval/RefVal.gif\" DataBindingField=\"{1}\" DataSourceID=\"{2}\" " + "DataTextField=\"{3}\" DataValueField=\"{4}\" ReadOnly=\"False\" ResxDataSet=\"\" " + "ResxFilePath=\"\" UseButtonImage=\"True\"> " + RefColumns.ToString() + "</InfoLight:WebRefVal>", "wrv2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, DataSourceID, FSYS_REFVAL.Tables[0].Rows[0]["DISPLAY_MEMBER"].ToString(), FSYS_REFVAL.Tables[0].Rows[0]["VALUE_MEMBER"].ToString(), FormatStyle ); } lists.Add(S1); } } else if (aFieldItem.ControlType == "ComboBox") { String FormatStyle = FormatEditMask(aFieldItem.EditMask); String DataSourceID = GenWebDataSource(aFieldItem, aFieldItem.ComboEntityName, "ComboBox", ""); String S5 = ""; switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; S5 = String.Format("<InfoLight:WebDropDownList id=\"{0}\" runat=\"server\" DataMember=\"{1}\" DataSourceID=\"{2}\" __designer:wfdid=\"w3\" DataTextField=\"{3}\" Filter DataValueField=\"{4}\" AutoInsertEmptyData=\"False\" SelectedValue='<%# Bind(\"{5}\"{6})%>' Width=\"130px\"></InfoLight:WebDropDownList>", "wdd2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.ComboEntityName, DataSourceID, aFieldItem.ComboTextField, aFieldItem.ComboValueField, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; S5 = String.Format("<InfoLight:WebDropDownList id=\"{0}\" runat=\"server\" DataMember=\"{1}\" DataSourceID=\"{2}\" __designer:wfdid=\"w3\" DataTextField=\"{3}\" Filter DataValueField=\"{4}\" AutoInsertEmptyData=\"False\" SelectedValue='<%# Bind(\"{5}\"{6}) %>' Width=\"130px\"></InfoLight:WebDropDownList>", "wdd2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.ComboEntityName, DataSourceID, aFieldItem.ComboTextField, aFieldItem.ComboValueField, aFieldItem.DataField, FormatStyle); if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "wdd2" + BlockItem.TableName + aFieldItem.DataField + ExtraName; aViewField.FieldName = aFieldItem.DataField; WebFormView2.Fields.Add(aViewField); } break; case "ItemTemplate": ExtraName = ""; S5 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l2" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } lists.Add(S5); } else if (aFieldItem.ControlType == "ValidateBox") { String FormatStyle = FormatEditMask(aFieldItem.EditMask); String S6 = ""; switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; S6 = String.Format("<InfoLight:WebValidateBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{3}) %>' ValidateField=\"{1}\" WebValidateID=\"{2}\" MaxLength=\"{4}\"></InfoLight:WebValidateBox></td>", "wvb2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, aValidate.ID, FormatStyle, aFieldItem.Length); break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "wdd2" + BlockItem.TableName + aFieldItem.DataField + ExtraName; aViewField.FieldName = aFieldItem.DataField; WebFormView2.Fields.Add(aViewField); } S6 = String.Format("<InfoLight:WebValidateBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{3}) %>' ValidateField=\"{1}\" WebValidateID=\"{2}\" MaxLength=\"{4}\"></InfoLight:WebValidateBox></td>", "wvb2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, aValidate.ID, FormatStyle, aFieldItem.Length); break; case "ItemTemplate": ExtraName = ""; S6 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l2" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } lists.Add(S6); } else if (aFieldItem.ControlType == "CheckBox") { String FormatStyle = FormatEditMask(aFieldItem.EditMask); String S6 = ""; switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; S6 = String.Format("<asp:CheckBox ID=\"{0}\" runat=\"server\" Checked='<%# Bind(\"{1}\"{2}) %>'></asp:CheckBox></td>", "cb2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; S6 = String.Format("<asp:CheckBox ID=\"{0}\" runat=\"server\" Checked='<%# Bind(\"{1}\"{2}) %>'></asp:CheckBox></td>", "wvb2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "ItemTemplate": ExtraName = ""; S6 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l2" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } lists.Add(S6); } else { if (aFieldItem.DataType == typeof(DateTime) || (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) { String DataTimeType = ""; if (aFieldItem.EditMask == "ShortDate") DataTimeType = "ShortDate"; else if (aFieldItem.EditMask == "LongDate") DataTimeType = "ShortDate"; else DataTimeType = "None"; String FormatStyle = FormatEditMask(aFieldItem.EditMask); String S4 = ""; if (isAjaxPage) { switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" Text='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></AjaxTools:AjaxDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" DateString='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></AjaxTools:AjaxDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" Text='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></AjaxTools:AjaxDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<AjaxTools:AjaxDateTimePicker id=\"{0}\" runat=\"server\" Width=\"130px\" DateString='<%# Bind(\"{1}\"{2}) %>' DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></AjaxTools:AjaxDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "ItemTemplate": ExtraName = ""; S4 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } } else { switch (tempDefin.Name) { case "EditItemTemplate": ExtraName = "E"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" Text='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></InfoLight:WebDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" DateString='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></InfoLight:WebDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "InsertItemTemplate": ExtraName = "I"; if (aFieldItem.DataType == typeof(DateTime)) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" Text='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"DateTime\"></InfoLight:WebDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); else if (aFieldItem.DataType == typeof(String) && (aFieldItem.ControlType != null && aFieldItem.ControlType.ToUpper() == "DATETIMEBOX")) S4 = String.Format("<InfoLight:WebDateTimePicker id=\"{0}\" runat=\"server\" Width=\"100px\" DateString='<%# Bind(\"{1}\"{2}) %>' __designer:wfdid=\"w14\" UseButtonImage=\"True\" DateFormat=\"" + DataTimeType + "\" DateTimeType=\"Varchar\"></InfoLight:WebDateTimePicker>", "wdtp2" + BlockItem.TableName + aFieldItem.DataField + ExtraName, aFieldItem.DataField, FormatStyle); break; case "ItemTemplate": ExtraName = ""; S4 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l2" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); break; } } lists.Add(S4); } else { String FormatStyle = FormatEditMask(aFieldItem.EditMask); if (tempDefin.Name == "ItemTemplate") { String S3 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l2" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle); lists.Add(S3); } else { if (tempDefin.Name == "InsertItemTemplate") { //if (aFieldItem.DefaultValue != null && aFieldItem.DefaultValue != "") //{ FormViewField aViewField = new FormViewField(); aViewField.ControlID = "tb2" + aFieldItem.DataField; aViewField.FieldName = aFieldItem.DataField; WebFormView2.Fields.Add(aViewField); //} } String S4 = String.Format("<asp:TextBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>' MaxLength=\"{3}\"></asp:TextBox>", "tb2" + aFieldItem.DataField, aFieldItem.DataField, FormatStyle, aFieldItem.Length); lists.Add(S4); } } } } Done = true; j = j * 2; if (m > 0) { builder.Append("<table>"); } foreach (string ctrlText in lists.ToArray()) { if (ctrlText == null || ctrlText.Length == 0) continue; if (m > 0) { if (i % m == 0) { builder.Append("<tr>"); } builder.Append("<td>"); } // add dd string ddText = ""; if (tempDefin.Name != "ItemTemplate") { ddText = GetDDText(ctrlText, BlockItem, tempDefin.Name); } else { ddText = GetDDText(ctrlText, BlockItem, tempDefin.Name); } builder.Append(ddText); builder.Append("\r\n"); if (m > 0) { builder.Append("</td>"); if (i % m == m - 1) { builder.Append("</tr>"); } } i++; } if (m > 0) { if (i % m != 0) { int n = m - (i % m); int q = 0; while (q < n) { builder.Append("<td></td>"); q++; } builder.Append("</tr>"); } builder.Append("</table>"); } tempDefin.Content = builder.ToString(); } } } if (!FWebDefaultList.Contains(aDefault)) FWebDefaultList.Add(aDefault); //FWebValidateList.Add(aValidate); IComponentChangeService FComponentChangeService = (IComponentChangeService)FDesignerHost.RootComponent.Site.GetService(typeof(IComponentChangeService)); NotifyRefresh(200); FComponentChangeService.OnComponentChanged(WebFormView2, null, "", "M"); FComponentChangeService.OnComponentChanged(Detail, null, "", "M"); FComponentChangeService.OnComponentChanged(aValidate, null, "", "M"); #endif }
/// <summary> /// 刷新formview的内容 /// </summary> /// <param name="formViewElement">formview的结构</param> /// <param name="blockItem">blockItem</param> private void RefreshFormView(WebDevPage.IHTMLElement formViewElement, TBlockItem blockItem) { if (formViewElement != null) { StringBuilder builderEditTemplate = new StringBuilder("<EditItemTemplate>\r\n\t<table class=\"container_table\">"); StringBuilder builderInsertTemplate = new StringBuilder("<InsertItemTemplate>\r\n\t<table class=\"container_table\">"); StringBuilder builderItemTemplate = new StringBuilder("<ItemTemplate>\r\n\t<table class=\"container_table\">"); FormViewFieldsCollection fields = new FormViewFieldsCollection(null, typeof(FormViewField)); int layoutcolnum = int.Parse(formViewElement.getAttribute("LayOutColNum", 0).ToString()); for (int i = 0; i < blockItem.BlockFieldItems.Count; i++) { TBlockFieldItem item = (TBlockFieldItem)blockItem.BlockFieldItems[i]; string controlid = string.Empty; if (i % layoutcolnum == 0 || layoutcolnum == 1) { builderEditTemplate.AppendLine("\t\t<tr>"); builderInsertTemplate.AppendLine("\t\t<tr>"); builderItemTemplate.AppendLine("\t\t<tr>"); } builderEditTemplate.AppendLine("\t\t\t<td class=\"caption_td\">"); builderEditTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetCaptionLabelXml(item, true))); builderEditTemplate.AppendLine("\t\t\t</td>"); builderEditTemplate.AppendLine("\t\t\t<td class=\"value_td\">"); controlid = "E"; builderEditTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetControlXml(item, blockItem.TableName, ref controlid))); builderEditTemplate.AppendLine("\t\t\t</td>"); builderInsertTemplate.AppendLine("\t\t\t<td class=\"caption_td\">"); builderInsertTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetCaptionLabelXml(item, true))); builderInsertTemplate.AppendLine("\t\t\t</td>"); builderInsertTemplate.AppendLine("\t\t\t<td class=\"value_td\">"); controlid = "I"; builderInsertTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetControlXml(item, blockItem.TableName, ref controlid))); builderInsertTemplate.AppendLine("\t\t\t</td>"); builderItemTemplate.AppendLine("\t\t\t<td class=\"caption_td\">"); builderItemTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetCaptionLabelXml(item, false))); builderItemTemplate.AppendLine("\t\t\t</td>"); builderItemTemplate.AppendLine("\t\t\t<td class=\"value_td\">"); builderItemTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetLabelXml(item, blockItem.TableName, ref controlid))); builderItemTemplate.AppendLine("\t\t\t</td>"); if (i % layoutcolnum == layoutcolnum - 1 || layoutcolnum == 1 || i == blockItem.BlockFieldItems.Count - 1) { builderEditTemplate.AppendLine("\t\t</tr>"); builderInsertTemplate.AppendLine("\t\t</tr>"); builderItemTemplate.AppendLine("\t\t</tr>"); } FormViewField field = new FormViewField(); field.FieldName = item.DataField; field.ControlID = controlid; fields.Add(field); } builderEditTemplate.AppendLine("\t</table>\r\n</EditItemTemplate>"); builderInsertTemplate.AppendLine("\t</table>\r\n</InsertItemTemplate>"); builderItemTemplate.AppendLine("\t</table>\r\n</ItemTemplate>"); SetCollectionValue(formViewElement, typeof(WebFormView).GetProperty("Fields"), fields); SetTemplateValue(formViewElement, builderItemTemplate.ToString(), "ItemTemplate"); SetTemplateValue(formViewElement, builderInsertTemplate.ToString(), "InsertItemTemplate"); SetTemplateValue(formViewElement, builderEditTemplate.ToString(), "EditItemTemplate"); } }
private void RefreshFormView(WebDevPage.IHTMLElement formViewElement, DataRowCollection drc) { if (formViewElement != null) { StringBuilder builderItemTemplate = new StringBuilder("<ItemTemplate>\r\n\t<table class=\"container_table\">"); FormViewFieldsCollection fields = new FormViewFieldsCollection(null, typeof(FormViewField)); int layoutcolnum = int.Parse(formViewElement.getAttribute("LayOutColNum", 0).ToString()); for (int i = 0; i < SelectedMasterFields.Rows.Count; i++) { string controlid = string.Empty; if (i % layoutcolnum == 0 || layoutcolnum == 1) { builderItemTemplate.AppendLine("\t\t<tr>"); } builderItemTemplate.AppendLine("\t\t\t<td>"); builderItemTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetCaptionLabelXml(SelectedMasterFields.Rows[i], false))); builderItemTemplate.AppendLine("\t\t\t</td>"); builderItemTemplate.AppendLine("\t\t\t<td>"); builderItemTemplate.AppendLine(string.Format("\t\t\t\t{0}", GetLabelXml(SelectedMasterFields.Rows[i]))); builderItemTemplate.AppendLine("\t\t\t</td>"); if (i % layoutcolnum == layoutcolnum - 1 || layoutcolnum == 1 || i == SelectedMasterFields.Rows.Count - 1) { builderItemTemplate.AppendLine("\t\t</tr>"); } FormViewField field = new FormViewField(); field.FieldName = SelectedMasterFields.Rows[i]["ColumnName"].ToString(); field.ControlID = controlid; fields.Add(field); } builderItemTemplate.AppendLine("\t</table>\r\n</ItemTemplate>"); SetCollectionValue(formViewElement, typeof(WebFormView).GetProperty("Fields"), fields); SetTemplateValue(formViewElement, builderItemTemplate.ToString(), "ItemTemplate"); } }
private void GenMasterFormView(ClientParam cp) { #if VS90 WebDevPage.IHTMLElement FormView = (WebDevPage.IHTMLElement)FDesignerDocument.webControls.item("wfvMaster", 0); if (FormView != null) { RefreshFormView(FormView, SelectedMasterFields.Rows); } #else WebDataSource Master = (WebDataSource)FPage.FindControl("Master"); WebFormView wfvMaster = (WebFormView)FPage.FindControl("wfvMaster"); //Generate RESX GenResx(Master); FormViewDesigner aDesigner = FDesignerHost.GetDesigner(wfvMaster) as FormViewDesigner; //FormView foreach (System.Web.UI.Design.TemplateGroup tempGroup in aDesigner.TemplateGroups) { foreach (System.Web.UI.Design.TemplateDefinition tempDefin in tempGroup.Templates) { if (tempDefin.Name == "EditItemTemplate" || tempDefin.Name == "InsertItemTemplate" || tempDefin.Name == "ItemTemplate") { StringBuilder builder = new StringBuilder(); string content = tempDefin.Content; if (content == null || content.Length == 0) continue; string[] ctrlTexts = content.Split("\r\n".ToCharArray()); //Control[] ctrls = ControlParser.ParseControls(host, content); int i = 0; int j = 0; int m = wfvMaster.LayOutColNum * 2; List<string> lists = new List<string>(); String ExtraName = ""; foreach (DataRow dr in SelectedMasterFields.Rows) { lists.Add(dr["ColumnName"].ToString()); String FormatStyle = FormatEditMask(dr["EditMask"].ToString()); if (tempDefin.Name == "ItemTemplate") { String S3 = String.Format("<asp:Label ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>'></asp:Label>", "l" + dr["ColumnName"].ToString(), dr["ColumnName"].ToString(), FormatStyle); lists.Add(S3); } else { if (tempDefin.Name == "InsertItemTemplate") { FormViewField aViewField = new FormViewField(); aViewField.ControlID = "tb" + dr["ColumnName"].ToString(); aViewField.FieldName = dr["Caption"].ToString(); wfvMaster.Fields.Add(aViewField); } String S4 = String.Format("<asp:TextBox ID=\"{0}\" runat=\"server\" Text='<%# Bind(\"{1}\"{2}) %>' MaxLength=\"{3}\"></asp:TextBox>", "tb" + dr["ColumnName"].ToString(), dr["ColumnName"].ToString(), FormatStyle, dr["Width"].ToString()); lists.Add(S4); } } j = j * 2; if (m > 0) { builder.Append("<table>"); } foreach (string ctrlText in lists.ToArray()) { if (ctrlText == null || ctrlText.Length == 0) continue; if (m > 0) { if (i % m == 0) { builder.Append("<tr>"); } builder.Append("<td>"); } // add dd string ddText = ""; if (tempDefin.Name != "ItemTemplate") { //ddText = GetValidateText(ctrlText); //ddText = GetDDText(ddText, BlockItem); ddText = GetDDText(ctrlText, SelectedMasterFields, tempDefin.Name); } else { ddText = GetDDText(ctrlText, SelectedMasterFields, tempDefin.Name); } builder.Append(ddText); builder.Append("\r\n"); if (m > 0) { builder.Append("</td>"); if (i % m == m - 1) { builder.Append("</tr>"); } } i++; } if (m > 0) { if (i % m != 0) { int n = m - (i % m); int q = 0; while (q < n) { builder.Append("<td></td>"); q++; } builder.Append("</tr>"); } builder.Append("</table>"); } tempDefin.Content = builder.ToString(); } } } IComponentChangeService FComponentChangeService = (IComponentChangeService)FDesignerHost.RootComponent.Site.GetService(typeof(IComponentChangeService)); NotifyRefresh(200); FComponentChangeService.OnComponentChanged(wfvMaster, null, "", "M"); FComponentChangeService.OnComponentChanged(Master, null, "", "M"); #endif }
public void CopyDefaultFields() { foreach (Control ctrl in formView.Page.Controls) { if (ctrl is WebDefault) { WebDefault def = (WebDefault)ctrl; object obj = formView.GetObjByID(formView.DataSourceID); if (obj is WebDataSource) { WebDataSource wds = (WebDataSource)obj; if (def.DataSourceID == formView.DataSourceID)//因为已经把View上面的DataMember都去掉了,所以不需要判断DataMember是否相同了 && def.DataMember == wds.DataMember) { //this.tag.SetDirty(true); formView.Fields.Clear(); string content = this.tag.GetContent(); int indexinserts = content.IndexOf("<InsertItemTemplate"); int indexinserte = content.IndexOf("</InsertItemTemplate>"); if (indexinserts != -1 && indexinserte != -1) { content = content.Substring(indexinserts, indexinserte - indexinserts); } foreach (DefaultFieldItem field in def.Fields) { FormViewField fvf = new FormViewField(); fvf.FieldName = field.FieldName; int index = content.IndexOf("<%# Bind(\"" + field.FieldName + "\") %>"); if (index != -1) { string ctrlRegion = content.Substring(0, index); if (ctrlRegion.IndexOf(" ID=\"", StringComparison.OrdinalIgnoreCase) != -1) { StringBuilder builder = new StringBuilder(ctrlRegion); string ctrlID = ctrlRegion.Substring(ctrlRegion.LastIndexOf(" ID=\"", StringComparison.OrdinalIgnoreCase) + 5); ctrlID = ctrlID.Substring(0, ctrlID.IndexOf("\"")); fvf.ControlID = ctrlID; } } formView.Fields.Add(fvf); } System.Windows.Forms.MessageBox.Show("copy fields success."); this.tag.SetDirty(true); break; } } } } }