public static void FillTRContainerTemplate(ref Template.Table table, ref int tableIndex, ref int trGroupIndex, ref int trIndex, ref int tdIndex, Template.BlockInfo sourceTemplateHolder, ref string templateTag) { #region new TR Container || not ( Default: new TR TemplateHolder ) List <Template.BlockInfo> trContainerTemplateArray = Template.Blocks(sourceTemplateHolder.Value, templateTag, "Template_Container", "/Template_Container", _searchBeforeTag: "Template_TR"); List <Template.BlockInfo> trTemplateArray = null; Template.BlockInfo trContainer = null; if (trContainerTemplateArray.Count >= 1) { trContainer = trContainerTemplateArray[0]; trTemplateArray = Template.Blocks(trContainer.Value, templateTag, "Template_TR", "Template_TR"); } else { trContainer = null; trTemplateArray = Template.Blocks(sourceTemplateHolder.Value, templateTag, "Template_TR", "Template_TR"); } if (table.GTRs[trGroupIndex] == null) { table.GTRs[trGroupIndex] = new Template.Block <Template.TR> .TGroup <Template.TR>(); } #region new TR s ( Container & TemplateHolder ) trIndex = -1; foreach (var trTemplateHolder in trTemplateArray) { trIndex++; //if (trIndex == 0) //{ // int __debug__ = 0; //} if (trIndex == 0) { trTemplateHolder.FillTemplateRef(table); trContainer.FillTemplateRef(table); // // # DATA Item & Template.TagInfo # // // debug pause // //trTemplateHolder.FillTagInfos(); //trContainer.FillTagInfos(); } var TRsList = table.GTRs[trGroupIndex].TRs; TRsList.Add(new Template.TR(trTemplateHolder, trContainer)); var TRz = TRsList[TRsList.Count - 1]; #region new TD Container || not ( Default: new TD TemplateHolder ) List <Template.BlockInfo> tdContainerTemplateArray = Template.Blocks(trTemplateHolder.Value, templateTag, "Template_Container", "/Template_Container", _searchBeforeTag: "Template_TD"); List <Template.BlockInfo> tdTemplateArray = null; Template.BlockInfo tdContainer = null; if (tdContainerTemplateArray.Count >= 1) { tdContainer = tdContainerTemplateArray[0]; tdTemplateArray = Template.Blocks(tdContainer.Value, templateTag, "Template_TD", "Template_TD"); } else { tdContainer = null; tdTemplateArray = Template.Blocks(trTemplateHolder.Value, templateTag, "Template_TD", "Template_TD"); } #region new TD s ( Container & TemplateHolder ) tdIndex = -1; foreach (var tdTemplateHolder in tdTemplateArray) { tdIndex++; if (tdIndex == 0) { tdTemplateHolder.FillTemplateRef(table); tdContainer.FillTemplateRef(table); // // # DATA Item & Template.TagInfo # // tdTemplateHolder.FillTagInfos(); // // debug pause // //tdContainer.FillTagInfos(); } var TDsList = TRsList[trIndex].TDs; TDsList.Add(new Template.TD(null, tdTemplateHolder, tdContainer)); var TDz = TDsList[TDsList.Count - 1]; #region TD Pair TDz.Pairs = TDz.Container.ToPairs(tdTemplateHolder); #endregion } #endregion #endregion #region TR Pair s var TDzFirst = TRz.TDs[0]; var TDzLast = TRz.TDs[TRz.TDs.Count - 1]; var pairs = TRz.TemplateHolder.ToPairs(TDzFirst.Container ?? TDzFirst.TemplateHolder, TDzLast.Container ?? TDzLast.TemplateHolder); TRz.Pairs = TRz.Pairs.Append(pairs); if (TRz.Container != null) { TRz.Pairs = TRz.Pairs.Append(TRz.Container.ToPairs(TRz.TemplateHolder)); } #endregion } #endregion #endregion }
public static void TemplateInit_TemplateTableTrGroup(ref Template.Table table, ref int tableIndex, int trGroupIndex, int trIndex, int tdIndex, Template.BlockInfo tableTemplateHolder) { table.GTRs = new Template.Block <Template.TR> .Group <Template.TR>(); List <Template.BlockInfo> trGroupTemplateArray = Template.Blocks(tableTemplateHolder.Value, Page.TemplateTag, "Template_TRGroup", "/Template_TRGroup"); #region None Template_TRGroup if (trGroupTemplateArray.Count == 0) { trGroupIndex = 0; Page.FillTRContainerTemplate(ref table, ref tableIndex, ref trGroupIndex, ref trIndex, ref tdIndex, tableTemplateHolder, ref Page.TemplateTag); #region GTR Pair <= Tr var pTRz = table.GTRs[trGroupIndex]; var TRzFirst = pTRz.TRs[0]; var TRzLast = pTRz.TRs[pTRz.TRs.Count - 1]; pTRz.Pairs = pTRz.Pairs.Append(pTRz.TemplateHolder.ToPairs(TRzFirst.Container ?? TRzFirst.TemplateHolder, TRzLast.Container ?? TRzLast.TemplateHolder)); #endregion // return => outside (for) continue // return; } #endregion trGroupIndex = -1; foreach (var trGroupTemplateHolder in trGroupTemplateArray) { trGroupIndex++; string templateSource = trGroupTemplateHolder.Value; List <Template.BlockInfo> innerTableTemplateArray = Template.Blocks(ref templateSource, Page.TemplateTag, "Template_TABLE", "/Template_TABLE"); if (innerTableTemplateArray.Count == 0) { #region None Table Template table.GTRs[trGroupIndex] = new Template.Block <Template.TR> .TGroup <Template.TR>(trGroupTemplateHolder); Page.FillTRContainerTemplate(ref table, ref tableIndex, ref trGroupIndex, ref trIndex, ref tdIndex, trGroupTemplateHolder, ref Page.TemplateTag); #region GTR Pair <= Tr var pTRz = table.GTRs[trGroupIndex]; var TRzFirst = pTRz.TRs[0]; var TRzLast = pTRz.TRs[pTRz.TRs.Count - 1]; pTRz.Pairs = pTRz.Pairs.Append(pTRz.TemplateHolder.ToPairs(TRzFirst.Container ?? TRzFirst.TemplateHolder, TRzLast.Container ?? TRzLast.TemplateHolder)); #endregion #endregion } else { //// for 1 Template_TABLE //// //foreach (var innerTableTemplateHolder in innerTableTemplateArray) //{ // table.GTRs[trGroupIndex] = new Template.Block<Template.TR>.TGroup<Template.TR>(trGroupTemplateHolder, innerTableTemplateHolder); // Template.Table innerTable = table.GTRs[trGroupIndex].InnerTable; // Page.TemplateInit_TemplateTableTrGroup(ref innerTable, ref tableIndex, 0, 0, 0, innerTableTemplateHolder); //} #region n || 1 Table s Template table.GTRs[trGroupIndex] = new Template.Block <Template.TR> .TGroup <Template.TR>(trGroupTemplateHolder, innerTableTemplateArray); for (int i = 0, iMax = table.GTRs[trGroupIndex].InnerTables.Count; i < iMax; i++) { Template.Table innerTable = table.GTRs[trGroupIndex].InnerTables[i]; Page.TemplateInit_TemplateTableTrGroup(ref innerTable, ref tableIndex, 0, 0, 0, innerTable.TemplateHolder); } #region GTR Pair <= Table s var pTRz = table.GTRs[trGroupIndex]; var tableTemplateFirst = pTRz.InnerTables[0]; var tableTemplateLast = pTRz.InnerTables[pTRz.InnerTables.Count - 1]; pTRz.Pairs = pTRz.Pairs.Append(pTRz.TemplateHolder.ToPairs(tableTemplateFirst.TemplateHolder, tableTemplateLast.TemplateHolder)); #endregion #endregion } } return; }