or
Hello programmers, i hope now you can help me.
I have a grid that each item has its table of detail, yet each detail table is different, because they may have a different number of columns.
I modify the structure from the code, however, when I expand the detail table shows the previous structure and expand a second time, shows the correct structure.
Is there any way to display the existing economic structure right the first time?
Annex code and images.
-- ASPX ========================================================================
<Telerik:RadGrid ID="radGriOrdComDetalles" runat="server" Width="980" AutoGenerateColumns="false" AllowAutomaticDeletes="false" AllowAutomaticInserts="false" AllowAutomaticUpdates="false"> <MasterTableView DataKeyNames="Id, prodSkucode" CommandItemDisplay="None" EditMode="InPlace" NoDetailRecordsText =" " NoMasterRecordsText=""> <Columns> <Telerik:GridBoundColumn UniqueName="colIdOrdCompra" HeaderText="Id orden de compra" DataField="Id" HeaderStyle-Width="130px"/> <Telerik:GridBoundColumn UniqueName="colSku" HeaderText="SKU" DataField="prodSkucode" HeaderStyle-Width="160px"/> <Telerik:GridBoundColumn UniqueName="colDescripcion" HeaderText="Descripcion" DataField="prodDescripcion" HeaderStyle-Width="300px"/> <Telerik:GridBoundColumn UniqueName="colDepartamento" HeaderText="Departamento" DataField="depaDescripcion" HeaderStyle-Width="180px"/> </Columns> <DetailTables> <Telerik:GridTableView Name="gridProductoDetalles" DataKeyNames="Id, prodSkucode" EditMode="InPlace" NoDetailRecordsText="" NoMasterRecordsText="" GridLines="Vertical"> </Telerik:GridTableView> </DetailTables> </MasterTableView> </Telerik:RadGrid>void radGriOrdComDetalles_DetailTableDataBind(object sender, Telerik.Web.UI.GridDetailTableDataBindEventArgs e) { try { if (e.DetailTableView.Name == "gridProductoDetalles") { Telerik.Web.UI.GridDataItem parentItem = e.DetailTableView.ParentItem; strSkucode = parentItem.Cells[3].Text; strIdOrdCompra = parentItem.Cells[2].Text; DataTable datTabDatosDetalle = new DataTable(); if (ViewState["OrdCompraProdDetallesSub" + strIdOrdCompra + strSkucode] == null) datTabDatosDetalle = CCSMovimientoProductos.BuscarProdDetOrdenCompra_CEDIS(strIdOrdCompra, strSkucode).Tables[0]; else datTabDatosDetalle = (DataTable)ViewState["OrdCompraProdDetallesSub" + strIdOrdCompra + strSkucode]; //e.DetailTableView.DataSource = datTabDatosDetalle; // SE AGREGAN LAS COLUMNAS CORRESPONDIENTES. radGriOrdComDetalles.MasterTableView.DetailTables[0].Columns.Clear(); radGriOrdComDetalles.MasterTableView.DetailTables[0].Rebind(); Telerik.Web.UI.GridBoundColumn campo; foreach (DataColumn dc in datTabDatosDetalle.Columns) { campo = new Telerik.Web.UI.GridBoundColumn(); radGriOrdComDetalles.MasterTableView.DetailTables[0].Columns.Add(campo); campo.UniqueName = "col" + dc.ColumnName; campo.HeaderText = "[ " + dc.ColumnName + " ]"; campo.HeaderStyle.Font.Bold = true; campo.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; campo.DataField = dc.ColumnName; if (dc.ColumnName == "Talla") campo.ReadOnly = true; } Telerik.Web.UI.GridEditCommandColumn campoEdit = new Telerik.Web.UI.GridEditCommandColumn(); campoEdit.UniqueName = "colEdit"; radGriOrdComDetalles.MasterTableView.DetailTables[0].Columns.Add(campoEdit); campoEdit.UniqueName = "colEdit"; campoEdit.ButtonType = Telerik.Web.UI.GridButtonColumnType.LinkButton; campoEdit.EditText = "Editar"; campoEdit.UpdateText = "Actualizar"; campoEdit.CancelText = "Cancelar"; // SE AGREGA EN EL VIEWSTATE LA REGLETA CORRESPONDIENTE AL PRODUCTO if (ViewState["OrdCompraProdDetallesSub" + strIdOrdCompra + strSkucode] == null) ViewState.Add("OrdCompraProdDetallesSub" + strIdOrdCompra + strSkucode, datTabDatosDetalle); else ViewState["OrdCompraProdDetallesSub" + strIdOrdCompra + strSkucode] = datTabDatosDetalle; // SE AGREGAN LOS DATOS FINALES AL SOURCE DEL GRID. radGriOrdComDetalles.MasterTableView.DetailTables[0].DataSource = datTabDatosDetalle; radGriOrdComDetalles.MasterTableView.DetailTables[0].Columns[0].Visible = false; radGriOrdComDetalles.MasterTableView.DetailTables[0].Columns[1].Visible = false; radGriOrdComDetalles.MasterTableView.DetailTables[0].CommandItemDisplay = Telerik.Web.UI.GridCommandItemDisplay.Top; radGriOrdComDetalles.MasterTableView.DetailTables[0].EditMode = Telerik.Web.UI.GridEditMode.InPlace; radGriOrdComDetalles.Rebind(); } } catch (Exception ex) { } }<div id="blog_header_editor"> Header: <telerik:RadScriptManager ID="RadScriptManager1" runat="server"> </telerik:RadScriptManager> <telerik:RadEditor ID="HeaderEditor1" runat="server" ImageManager-DeletePaths="/UserFiles/Images" ImageManager-UploadPaths="/UserFiles/Images" ImageManager-ViewPaths="/UserFiles/Images" ImageManager-EnableImageEditor="true" DocumentManager-DeletePaths="/UserFiles/Documents" DocumentManager-UploadPaths="/UserFiles/Documents" DocumentManager-ViewPaths="/UserFiles/Documents" Skin="Windows7" Width="720" Height="440"> <Tools> <telerik:EditorToolGroup Tag="MainToolbar"> <telerik:EditorTool Name="Print" ShortCut="CTRL+P" /> <telerik:EditorTool Name="AjaxSpellCheck" /> <telerik:EditorTool Name="FindAndReplace" ShortCut="CTRL+F" /> <telerik:EditorTool Name="SelectAll" ShortCut="CTRL+A" /> <telerik:EditorTool Name="Cut" /> <telerik:EditorTool Name="Copy" ShortCut="CTRL+C" /> <telerik:EditorTool Name="Paste" ShortCut="CTRL+V" /> <telerik:EditorTool Name="PasteStrip" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="Undo" ShortCut="CTRL+Z" /> <telerik:EditorTool Name="Redo" ShortCut="CTRL+Y" /> </telerik:EditorToolGroup> <telerik:EditorToolGroup Tag="InsertToolbar"> <telerik:EditorTool Name="ImageManager" ShortCut="CTRL+G" /> <telerik:EditorTool Name="DocumentManager" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="LinkManager" ShortCut="CTRL+K" /> <telerik:EditorTool Name="Unlink" ShortCut="CTRL+SHIFT+K" /> </telerik:EditorToolGroup> <telerik:EditorToolGroup> <telerik:EditorTool Name="Superscript" /> <telerik:EditorTool Name="Subscript" /> <telerik:EditorTool Name="InsertParagraph" /> <telerik:EditorTool Name="InsertGroupbox" /> <telerik:EditorTool Name="InsertHorizontalRule" /> <telerik:EditorTool Name="InsertDate" /> <telerik:EditorTool Name="InsertTime" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="FormatCodeBlock" /> </telerik:EditorToolGroup> <telerik:EditorToolGroup> <telerik:EditorTool Name="FormatBlock" /> <telerik:EditorTool Name="FontName" ShortCut="CTRL+SHIFT+F" /> <telerik:EditorTool Name="RealFontSize" ShortCut="CTRL+SHIFT+P" /> </telerik:EditorToolGroup> <telerik:EditorToolGroup> <telerik:EditorTool Name="AbsolutePosition" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="Bold" ShortCut="CTRL+B" /> <telerik:EditorTool Name="Italic" ShortCut="CTRL+I" /> <telerik:EditorTool Name="Underline" ShortCut="CTRL+U" /> <telerik:EditorTool Name="StrikeThrough" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="JustifyLeft" /> <telerik:EditorTool Name="JustifyCenter" /> <telerik:EditorTool Name="JustifyRight" /> <telerik:EditorTool Name="JustifyFull" /> <telerik:EditorTool Name="JustifyNone" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="Indent" /> <telerik:EditorTool Name="Outdent" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="InsertOrderedList" /> <telerik:EditorTool Name="InsertUnorderedList" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="ToggleTableBorder" /> <telerik:EditorTool Name="XhtmlValidator" /> </telerik:EditorToolGroup> <telerik:EditorToolGroup> <telerik:EditorTool Name="ForeColor" /> <telerik:EditorTool Name="BackColor" /> <telerik:EditorTool Name="ApplyClass" /> <telerik:EditorTool Name="FormatStripper" /> </telerik:EditorToolGroup> <telerik:EditorToolGroup Tag="DropdownToolbar"> <telerik:EditorTool Name="InsertSymbol" /> <telerik:EditorTool Name="InsertTable" /> <telerik:EditorTool Name="InsertSnippet" /> <telerik:EditorTool Name="ImageMapDialog" /> <telerik:EditorTool Name="InsertCustomLink" ShortCut="CTRL+ALT+K" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="ConvertToLower" /> <telerik:EditorTool Name="ConvertToUpper" /> <telerik:EditorSeparator /> <telerik:EditorTool Name="Zoom" /> <telerik:EditorTool Name="ModuleManager" /> <telerik:EditorTool Name="ToggleScreenMode" ShortCut="F11" /> <telerik:EditorTool Name="AboutDialog" /> </telerik:EditorToolGroup> </Tools> <Content> </Content> <ImageManager ViewPaths="/UserFiles/Images" UploadPaths="/UserFiles/Images" DeletePaths="/UserFiles/Images" MaxUploadFileSize="2048000"></ImageManager> <DocumentManager ViewPaths="/UserFiles/Documents" UploadPaths="/UserFiles/Documents" DeletePaths="/UserFiles/Documents" MaxUploadFileSize="2048000"></DocumentManager> </telerik:RadEditor> </div> <div class="clear"></div> <div id="buttons"> <div id="cmdSave" class="page_property_button"> <asp:ImageButton runat="server" ID="ibtnSave" OnClick="cmdSave_Click" src="/LookAndFeel/Images/icon_save.png" class="page_property_icon" /> <div class="page_property_text"> Save<br /> This Blog </div> <div class="clear"></div> </div>

<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" OnItemDataBound="RadGrid1_ItemDataBound" OnPreRender="RadGrid1_PreRender" PageSize="5" onneeddatasource="RadGrid1_NeedDataSource"> <MasterTableView DataKeyNames="doc_id"> </MasterTableView> <PagerStyle EnableSEOPaging="true" SEOPagingQueryStringKey="page" /></telerik:RadGrid>public partial class _Default : System.Web.UI.Page{ public class TestData { public int doc_id{get;set;} public string Title{get;set;} } private List<TestData> GetData() { var data = new List<TestData>(); for (int i = 1; i < 30; i++) {data.Add(new TestData(){doc_id = i,Title = "Title for " + i});} return data; } protected void Page_Load(object sender, EventArgs e) { Debug.WriteLine("Pageload"); } protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) { if (e.Item is GridDataItem) { Debug.WriteLine("ItemDataBound: " + (e.Item as GridDataItem).GetDataKeyValue("doc_id")); } } protected void RadGrid1_PreRender(object sender, EventArgs e) { Debug.WriteLine("PreRender"); } protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { Debug.WriteLine("NeedDataSource"); RadGrid1.DataSource = GetData(); }}
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SimpleGrid.ascx.cs" Inherits="UserControls_SimpleGrid" %><%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %><script language="javascript" type="text/javascript" src="SimpleGridJs.js"><!-- ////--></script><telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="true" AutoGenerateColumns="False"> <MasterTableView ClientDataKeyNames="makecode, make"> <Columns> <telerik:GridBoundColumn DataField="makeid" HeaderText="makeid"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="makecode" HeaderText="makecode"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="make" HeaderText="make"> </telerik:GridBoundColumn> <telerik:GridButtonColumn ButtonType="ImageButton"ImageUrl="images/technote1.gif"> </telerik:GridButtonColumn> </Columns> </MasterTableView> <ClientSettings> <DataBinding Location="SimpleService.asmx" SelectMethod="GetDataAndCount" /> </ClientSettings></telerik:RadGrid>