I'm trying to suppress the display of columns in the master table and in detail grids in the PreRender event. This is as suggested in other Telerik responses to postings. The master table behaves as expected, but the detail tables do not suppress their columns. The code is below:
and the markup:
Thanks, Steve
protected void RadGridLot_PreRender(object sender, EventArgs e){ switch (RadComboBoxFilter.SelectedItem.Value) { case WECOBLL.WECODefs.sLotOpen: RadGridLot.MasterTableView.GetColumn("AddJob").Visible = true; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Action1").Visible = true; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Action2").Visible = true; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Form1").Visible = true; RadGridLot.MasterTableView.GetColumn("OutgoingNetWeightTotal").Visible = false; break; case WECOBLL.WECODefs.sLotShipped: RadGridLot.MasterTableView.GetColumn("AddJob").Visible = false; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Action1").Visible = true; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Action2").Visible = false; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Form1").Visible = true; RadGridLot.MasterTableView.GetColumn("OutgoingNetWeightTotal").Visible = true; break; case WECOBLL.WECODefs.sLotClosed: RadGridLot.MasterTableView.GetColumn("AddJob").Visible = false; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Action1").Visible = false; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Action2").Visible = false; RadGridLot.MasterTableView.DetailTables[0].GetColumn("Form1").Visible = true; RadGridLot.MasterTableView.GetColumn("OutgoingNetWeightTotal").Visible = true; break; }}and the markup:
<telerik:RadGrid ID="RadGridLot" runat="server" DataSourceID="ObjectDataSourceLots" GridLines="None" ondetailtabledatabind="RadGridLot_DetailTableDataBind" AllowAutomaticInserts="True" AutoGenerateColumns="False" oninsertcommand="RadGridLot_InsertCommand" Skin="Web20" onitemcommand="RadGridLot_ItemCommand" onprerender="RadGridLot_PreRender" AllowSorting="True" onneeddatasource="RadGridLot_NeedDataSource" onitemcreated="RadGridLot_ItemCreated"> <ClientSettings> <Scrolling AllowScroll="True" ScrollHeight="600px" /> </ClientSettings> <MasterTableView DataSourceID="ObjectDataSourceLots" DataKeyNames="Name,Id" CommandItemDisplay="Top" AllowNaturalSort="False" HierarchyDefaultExpanded="True"> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <DetailTables> <telerik:GridTableView Name="Jobs" runat="server" DataSourceID="ObjectDataSourceJobs" DataKeyNames="Id" NoDetailRecordsText="No Jobs to display." BackColor="#FFFFCC" > <RowIndicatorColumn> <HeaderStyle Width="20px" /> </RowIndicatorColumn> <DetailTables> <telerik:GridTableView runat="server" Name="Bins" DataKeyNames="Id" NoDetailRecordsText="No Bins to display."> <CommandItemSettings></CommandItemSettings> <Columns> <telerik:GridTemplateColumn DataField="Id" DataType="System.Int64" HeaderText="Job Id" SortExpression="Id" UniqueName="Id" Visible="False"> <ItemTemplate> <asp:Label ID="JobIdLabel" runat="server" Text='<%# Eval("Id") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Name" HeaderText="Bin" SortExpression="Name" UniqueName="Name"> </telerik:GridBoundColumn> <telerik:GridNumericColumn DataField="AverageMoistureAsFraction" DataType="System.Double" DataFormatString="{0:P1}" HeaderText="Avg. Moisture" SortExpression="AverageMoistureAsFraction" UniqueName="JobAverageMoistureAsFraction"> <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </telerik:GridNumericColumn> <telerik:GridCheckBoxColumn DataField="DoorIsOpen" DataType="System.Boolean" HeaderText="Door Open" UniqueName="DoorisOpen" > <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </telerik:GridCheckBoxColumn> <telerik:GridCheckBoxColumn DataField="IsManual" DataType="System.Boolean" HeaderText="Manual" UniqueName="IsManual" > <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </telerik:GridCheckBoxColumn> </Columns> </telerik:GridTableView> </DetailTables><CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <ExpandCollapseColumn Visible="True"> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn DataField="Id" DataType="System.Int64" HeaderText="Job Id" SortExpression="Id" UniqueName="Id" Visible="False"> <ItemTemplate> <asp:Label ID="JobIdLabel" runat="server" Text='<%# Eval("Id") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="JobRefFormatted" HeaderText="Job Reference" SortExpression="JobRefFormatted" UniqueName="JobRefFormatted"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="JobStage" HeaderText="Stage" SortExpression="JobStage" UniqueName="JobStage"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="StartTime" DataType="System.DateTime" DataFormatString="{0:MM/dd hh:mm tt}" HeaderText="StartTime" SortExpression="StartTime" UniqueName="StartTime"> </telerik:GridDateTimeColumn> <telerik:GridNumericColumn DataField="JobAverageMoistureAsFraction" DataType="System.Double" DataFormatString="{0:P1}" HeaderText="Avg. Moisture" SortExpression="JobAverageMoistureAsFraction" UniqueName="JobAverageMoistureAsFraction"> <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </telerik:GridNumericColumn> <telerik:GridBoundColumn DataField="OutgoingReceiptNumber" HeaderText="Ship Receipt #" SortExpression="OutgoingReceiptNumber" UniqueName="OutgoingReceiptNumber"> </telerik:GridBoundColumn> <telerik:GridButtonColumn CommandName="Action1" UniqueName="Action1" Text="" ></telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="Action2" UniqueName="Action2" Text="" ></telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="Form1" UniqueName="Form1" Text="" ></telerik:GridButtonColumn> </Columns> </telerik:GridTableView> </DetailTables> <CommandItemSettings AddNewRecordText="Enter New Lot" ShowRefreshButton="False" /> <ExpandCollapseColumn > </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn DataField="LocationId" DataType="System.Int64" HeaderText="LocationId" SortExpression="LocationId" UniqueName="LocationId" Visible="False"> <ItemTemplate> <asp:Label ID="LocationIdLabel" runat="server" Text='<%# Eval("LocationId") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="LotRefFormatted" HeaderText="Lot Reference" SortExpression="LotRefFormatted" UniqueName="LotRefFormatted"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Grower" HeaderText="Grower" SortExpression="Grower" UniqueName="Grower"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Variety" HeaderText="Variety" SortExpression="Variety" UniqueName="Variety"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Field" HeaderText="Block" SortExpression="Field" UniqueName="Field"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="EstimatedNumberOfBins" DataType="System.Int64" HeaderText="Est. # Of Bins" SortExpression="EstimatedNumberOfBins" UniqueName="EstimatedNumberOfBins"> <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="Id" DataType="System.Int64" HeaderText="Id" SortExpression="Id" UniqueName="Id" Visible="False"> <ItemTemplate> <asp:Label ID="IdLabel" runat="server" Text='<%# Eval("Id") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn DataField="Name" HeaderText="Name" SortExpression="Name" UniqueName="Name" Visible="False"> <ItemTemplate> <asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridNumericColumn DataField="OutgoingNetWeightTotal" DataType="System.Double" HeaderText="Outgoing Net Wt." SortExpression="OutgoingNetWeightTotal" UniqueName="OutgoingNetWeightTotal"> <HeaderStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Center" /> </telerik:GridNumericColumn> <telerik:GridBoundColumn DataField="ReceivedOn" DataType="System.DateTime" DataFormatString="{0:MM/dd hh:mm tt}" HeaderText="Received On" SortExpression="ReceivedOn" UniqueName="ReceivedOn"> </telerik:GridBoundColumn> <telerik:GridButtonColumn CommandName="EditLot" UniqueName="EditLot" Text="Edit Lot" ></telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="AddJob" UniqueName="AddJob" Text="Create Job" ></telerik:GridButtonColumn> </Columns> <CommandItemTemplate> <asp:Button ID="ButtonInsert" runat="server" Text="+" OnClientClick="return ShowInsertLotForm();" /> <a href="#" onclick="return ShowInsertLotForm();">Add New Lot</a> </CommandItemTemplate> </MasterTableView> </telerik:RadGrid>Thanks, Steve