This is a migrated thread and some comments may be shown as answers.

[Solved] Problem access items in detail table with 3 level hierarchy

2 Answers 188 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Laura
Top achievements
Rank 1
Laura asked on 19 Apr 2009, 04:47 PM
I am trying to make certain elements of template columns not visible when in edit mode. I am trying to access these elements in the prerender handler for the grid. They are always coming up null. In particular, the sourceLookUpButton which I want to make not visible is null. Here is the code. I appreciate any help. Thanks

protected void providersGrid_preRender(object sender, EventArgs e) 
    { 
          
         
        foreach (GridDataItem item in providersGrid.Items ) 
        { 
             
            if (item.OwnerTableView.Name == "FeedTableView" && item is GridEditableItem) 
            { 
              
              
                GridEditableItem editableItem = item as GridEditableItem; 
 
                try 
                { 
                    ImageButton lookup = (ImageButton)editableItem["feedName"].FindControl("sourceLookUpButton"); 
                    lookup.Visible = false
                    RadGrid package_grid = (RadGrid)editableItem["packageGrid"].FindControl("packageGrid"); 
                    package_grid.Visible = true
                } 
                catch (Exception e1) 
                { 
                    int x = 1; 
                } 
            } 
             
             
        } 

     
                    <DetailTables> 
                            <telerik:GridTableView DataKeyNames="feed_id" DataSourceID="CCFeeds" 
                                runat="server" Width="100%" Caption=" <h5><br>Feeds</b> " Name="FeedTableView" EditMode="PopUp" 
                                CommandItemDisplay="Top" > 
                                <EditFormSettings ColumnNumber="3"  PopUpSettings-Width="900px" PopUpSettings-Modal="true" ></EditFormSettings
                                <ParentTableRelation> 
                                    <telerik:GridRelationFields DetailKeyField="service_id" MasterKeyField="service_id" /> 
                                </ParentTableRelation> 
                                <HeaderStyle  CssClass="FeedHeaderStyle" /> 
                                   <ItemStyle CssClass="FeedItemStyle" /> 
                                   <AlternatingItemStyle CssClass="FeedAlernatingItemStyle" /> 
                                 <CommandItemTemplate > 
                                     <div style="padding:10px 5px;"
                                         <asp:LinkButton  runat="server" id="addButton" OnClientClick="return ShowInsertFeedForm(); return false;" CommandName="InsertFeed" > 
                                        <img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.gif" />Add new feed</asp:LinkButton> 
                                 
                                          &nbsp;&nbsp;&nbsp;&nbsp; 
                                      
                                         <asp:LinkButton ID="rebindButton" runat="server" CommandName="RebindGrid"
                                          <img style="border:0px;vertical-align:middle;" alt="" src="Images/Refresh.gif" /> Refresh</asp:LinkButton> 
                                      </div> 
                                </CommandItemTemplate> 
                                <RowIndicatorColumn> 
                                <HeaderStyle Width="20px"></HeaderStyle> 
                                </RowIndicatorColumn> 
 
                                <ExpandCollapseColumn> 
                                <HeaderStyle Width="20px"></HeaderStyle> 
                                </ExpandCollapseColumn> 
                                <Columns> 
                                       <telerik:GridTemplateColumn AllowFiltering="false" UniqueName="actionColumn" > 
                                           <HeaderStyle Width="40px" /> 
                                            <ItemTemplate> 
                                              <asp:ImageButton ID="EditFeedLink" runat="server" ImageUrl="Images/editSpelled.gif" ToolTip="Edit" /> 
                                            </ItemTemplate> 
                                        </telerik:GridTemplateColumn> 
                                        <telerik:GridEditCommandColumn ButtonType="LinkButton"></telerik:GridEditCommandColumn> 
                        
                                    <telerik:GridBoundColumn SortExpression="feed_id" HeaderText="Feed ID" DataField="feed_id" Display="false" 
                                        UniqueName="feed_id" readonly="true"
                                    </telerik:GridBoundColumn> 
                                 
                                    <telerik:GridTemplateColumn UniqueName="feedName" HeaderText="Feed name" DataField="feed_name"
                                     <ItemTemplate> 
                                      <asp:Label ID="feed_nameLabel"   runat="server"  Text='<%#Eval("feed_name") %>'></asp:Label> 
                                     </ItemTemplate> 
                                     <EditItemTemplate> 
                                         <telerik:RadTextBox ID="feed_name" runat="server" Enabled="false" Width="175px" 
                                                    ToolTip="Click on lookup icon to choose from sources" Text = '<%# Eval("feed_name") %>'
                                                </telerik:RadTextBox> 
                                            
                                                 
                                                <asp:ImageButton ID="sourceLookUpButton" runat="server"  
                                                    AlternateText="Click to choose feed name" ImageUrl="~/Images/Lookup1.gif"  
                                                    OnClientClick="openSourceWindow(); return false;"  
                                                    ToolTip="Click to choose source"  /> 
                                                <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server"  
                                                    ControlToValidate="feed_name" Display="Dynamic" ErrorMessage="* required"  
                                                    ForeColor="#003DEB" SetFocusOnError="true"  
                                                    ValidationGroup="FeedValidationGroup"></asp:RequiredFieldValidator> 
                                                  
                                      
                                     </EditItemTemplate> 
                                    </telerik:GridTemplateColumn> 
                                    <telerik:GridTemplateColumn HeaderText = "Availability" UniqueName="availability" Display="false"
                                     
                                     <EditItemTemplate> 
                                             <telerik:RadComboBox ID="feed_avail_name" runat="server" MarkFirstMatch="true" AllowCustomText="true"  
                                                DataSourceID="SqlDataSourceAvailability" DataTextField="feed_avail_name" EmptyMessage="Select availability" 
                                                DataValueField="feed_avail_id" AppendDataBoundItems="true"  
                                                 SelectedValue='<%# Bind("feed_avail_id") %>'     
                                                onselectedindexchanged="feed_avail_name_SelectedIndexChanged"
                                                <CollapseAnimation Duration="200" Type="OutQuint" /> 
                                            </telerik:RadComboBox> 
                                            <asp:TextBox ID="feed_avail_id" runat="server" Height="0"  
                                                style="border: 0px solid #b0c4de;background-color:#b0c4de;" Visible="true"  
                                                Width="0"></asp:TextBox> 
                                     </EditItemTemplate> 
                                    </telerik:GridTemplateColumn> 
                                    <telerik:GridCheckBoxColumn DataField="is_active" HeaderText="Active" SortExpression="is_active"></telerik:GridCheckBoxColumn> 
                                    <telerik:GridNumericColumn DataField="retention_limit" Display="false" HeaderText="Retention limit" 
                                        UniqueName="retention_limit"></telerik:GridNumericColumn> 
                                   <telerik:GridNumericColumn DataField="avg_daily_count" UniqueName="avg_daily_count" HeaderText="Estimated daily story count"  
                                            display="false" AllowFiltering="false" ></telerik:GridNumericColumn> 
                                    <telerik:GridBoundColumn DataField="copyright" Display="false" HeaderText="Copyright" 
                                        UniqueName="copyright"></telerik:GridBoundColumn> 
                                        <telerik:GridBoundColumn DataField="depth" Display="false" HeaderText="Depth" 
                                        UniqueName="depth"></telerik:GridBoundColumn> 
                                        <telerik:GridBoundColumn DataField="breadth" Display="false" HeaderText="Breadth" 
                                        UniqueName="breadth"></telerik:GridBoundColumn> 
                                        <telerik:GridBoundColumn DataField="locus" Display="false" HeaderText="Locus" 
                                        UniqueName="locus"></telerik:GridBoundColumn> 
                                        <telerik:GridNumericColumn DataField="rank_best" Display="false" HeaderText="Rank(best source)" 
                                        UniqueName="rank_best"></telerik:GridNumericColumn> 
                                        <telerik:GridNumericColumn DataField="rank_cost" Display="false" HeaderText="Rank(cost)" 
                                        UniqueName="rank_cost"></telerik:GridNumericColumn> 
                                        
                                       <telerik:GridTemplateColumn HeaderText="External/Internal" AllowFiltering="false" Display="false" UniqueName="ext_int"
                                            <EditItemTemplate> 
                                                <telerik:RadComboBox ID="ext_int" runat="server" EmptyMessage="Choose int/ext" MarkFirstMatch="true" 
                                                    OnSelectedIndexChanged="extIntChanged"  SelectedValue='<%# Bind("ext_int") %>' > 
                                                    <Items> 
                                                        <telerik:RadComboBoxItem runat="server" Text="External" Value="ext" /> 
                                                        <telerik:RadComboBoxItem runat="server" Text="Internal" Value="int" /> 
                                                    </Items> 
                                                    <CollapseAnimation Duration="200" Type="OutQuint" /> 
                                                </telerik:RadComboBox> 
                                            </EditItemTemplate> 
                                        </telerik:GridTemplateColumn> 
                                       <telerik:GridTemplateColumn EditFormColumnIndex="1" DataField="real_time_flag" Display="false"  
                                                AllowFiltering="false" HeaderText="Real time flag" UniqueName="real_time_flag"
                                         <EditItemTemplate> 
                                          <asp:CheckBox ID="real_time_flag" runat="server" ToolTip="Should the content be treated as real-time?" 
                                                  
                                                  Checked='<%# GenerateBindbool(Container.DataItem, "real_time_flag")%>' /> 
                                         </EditItemTemplate> 
                                        </telerik:GridTemplateColumn>  
                                        <telerik:GridTemplateColumn EditFormColumnIndex="1" AllowFiltering="false" DataField="AMC_in_HL" Display="false" 
                                             HeaderText="Source in HL?" UniqueName="AMC_in_HL"
                                            <EditItemTemplate> 
                                                <asp:CheckBox ID="AMC_in_HL" runat="server" ToolTip="Should the source name be exposed in the headline?"  
                                                    Checked='<%# GenerateBindbool(Container.DataItem, "AMC_in_HL") %>' /> 
                                                     
                                            </EditItemTemplate> 
                                             
                                        </telerik:GridTemplateColumn> 
                                        <telerik:GridTemplateColumn EditFormColumnIndex="1"   DataField="NE_driver_flag" Display="false" 
                                             HeaderText="Driver"  UniqueName="NE_driver_flag"
                                            <EditItemTemplate> 
                                                <asp:CheckBox ID="NE_driver_flag" runat="server" ToolTip="Is it available from a NE driver?"  
                                                    Checked='<%# GenerateBindbool(Container.DataItem, "NE_driver_flag") %>' /> 
                                                     
                                            </EditItemTemplate> 
                                             
                                        </telerik:GridTemplateColumn> 
                                              <telerik:GridTemplateColumn EditFormColumnIndex="1"   DataField="AMC_FH_flag" Display="false" 
                                             HeaderText="Driver" UniqueName="AMC_FH_flag"
                                            <EditItemTemplate> 
                                                <asp:CheckBox ID="AMC_FH_flag" runat="server" ToolTip="Is it available from an AMC feed handler?"  
                                                    Checked='<%# GenerateBindbool(Container.DataItem, "AMC_FH_flag") %>' /> 
                                                     
                                            </EditItemTemplate> 
                                             
                                        </telerik:GridTemplateColumn>  
                                         
                                        <telerik:GridBoundColumn UniqueName="feed_identifier" Display="false" DataField="feed_identifier"  
                                            HeaderText="Feed Identifier" EditFormColumnIndex="1"></telerik:GridBoundColumn> 
                                        <telerik:GridNumericColumn UniqueName="rtcr_provider_id" DataField="rtcr_provider_id" Display="false"  
                                           HeaderText="RtCR Provider ID"  EditFormColumnIndex="1"></telerik:GridNumericColumn> 
                                        <telerik:GridNumericColumn UniqueName="rtcr_category_id" DataField="rtcr_category_id" Display="false"  
                                         HeaderText="RtCR Publication ID" EditFormColumnIndex="1"></telerik:GridNumericColumn> 
                                        <telerik:GridNumericColumn UniqueName="rtcr_subcategory_id" DataField="rtcr_subcategory_id" Display="false"  
                                           HeaderText="RtCR Section ID"  EditFormColumnIndex="1"></telerik:GridNumericColumn> 
                                        <telerik:GridNumericColumn UniqueName="topics" DataField="topics" Display="false"  
                                         HeaderText="Topics Vendor ID" EditFormColumnIndex="1"></telerik:GridNumericColumn> 
                                        <telerik:GridNumericColumn UniqueName="enterprise" DataField="enterprise" Display="false"  
                                           HeaderText="Enterprise Vendor ID" EditFormColumnIndex="1"></telerik:GridNumericColumn> 
                                         
                                        <telerik:GridNumericColumn UniqueName="full_feed" DataField="full_feed" Display="false"  
                                           HeaderText="Full Feed Vendor ID" EditFormColumnIndex="1"></telerik:GridNumericColumn> 
                                        <telerik:GridDateTimeColumn UniqueName="start_date" DataField="start_date" Display="false"  
                                            HeaderText="Start date" EditFormColumnIndex="1"></telerik:GridDateTimeColumn> 
                                        <telerik:GridDateTimeColumn UniqueName="end_date" DataField="end_date" Display="false" 
                                             HeaderText="End date" EditFormColumnIndex="1"></telerik:GridDateTimeColumn> 
                                       <telerik:GridTemplateColumn UniqueName="packageGrid" EditFormColumnIndex="2" > 
                                        <EditItemTemplate> 
                                          
                                          <telerik:RadGrid ID="packageGrid" runat="server" AutoGenerateColumns="False"  
                                DataSourceID="SqlDataSourcePackages" GridLines="None"  OnItemDataBound="packagesItemDataBound" 
                                OnItemCommand="packageItemCommand" OnItemCreated="packageGrid_created"  
                                 style="margin-right: 69px"
                                <GroupingSettings CaseSensitive="false" /> 
                                <HeaderContextMenu EnableTheming="True"
                                    <CollapseAnimation Duration="200" Type="OutQuint" /> 
                                </HeaderContextMenu> 
                                <MasterTableView CommandItemDisplay="Top" DataSourceID="SqlDataSourcePackages" 
                                         DataKeyNames="package_id"
                                    <RowIndicatorColumn> 
                                        <HeaderStyle Width="20px" /> 
                                    </RowIndicatorColumn> 
                                    <ExpandCollapseColumn> 
                                        <HeaderStyle Width="20px" /> 
                                    </ExpandCollapseColumn> 
                                    <SortExpressions> 
                                         
                                        <telerik:GridSortExpression FieldName="package_name" SortOrder="Ascending" /> 
                                         
                                    </SortExpressions> 
                                    <Columns> 
                                        <telerik:GridBoundColumn DataField="package_id" Display="false"></telerik:GridBoundColumn> 
                                        <telerik:GridBoundColumn HeaderText="Package name" DataField="package_name" 
                                             AllowFiltering="true" UniqueName="package_name"></telerik:GridBoundColumn> 
                                         <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete"  
                                            ConfirmTitle="Remove" ImageUrl="Images/DeleteIcon_X.gif" Text="Remove"  
                                            UniqueName="RemoveCol" ConfirmDialogType="RadWindow" ConfirmText="Remove feed from this package?"
                                            <HeaderStyle Width="30px" /> 
                                        </telerik:GridButtonColumn> 
                                    </Columns> 
                                    <EditFormSettings> 
                                        <EditColumn ButtonType="ImageButton"  
                                            UniqueName="editCommandColumn2" InsertImageUrl="Images/BtnUnpressedOK.jpg"
                                        </EditColumn> 
                                        <EditColumn ButtonType="ImageButton" UniqueName="editCommandColumn2"  
                                            UpdateImageUrl="Images/BtnUnpressedOK.jpg"
                                        </EditColumn> 
                                        <EditColumn ButtonType="ImageButton" UniqueName="EditCommandColumn1"  
                                            CancelImageUrl="Images/BtnUnpressedCancel.jpg"
                                        </EditColumn> 
                                    </EditFormSettings> 
                                    <commanditemtemplate> 
                                        <div style="padding:10px 5px;"
                                            <asp:LinkButton ID="packageInsertButton" runat="server"  
                                                OnClientClick="addPackage(); return false;"
                                 <img alt="" src="Images/AddRecord.gif"  
                                style="border:0px;vertical-align:middle;" />Add this feed to package(s)</asp:LinkButton> 
                                        </div> 
                                    </commanditemtemplate> 
                                </MasterTableView> 
                                <FilterMenu EnableTheming="True"
                                    <CollapseAnimation Duration="200" Type="OutQuint" /> 
                                </FilterMenu> 
                            </telerik:RadGrid> 
                                        </EditItemTemplate> 
                                       </telerik:GridTemplateColumn> 
                                        
 
                                       <telerik:GridTemplateColumn AllowFiltering="false">  
                                       <HeaderStyle Width="30px" /> 
                                        <ItemTemplate> 
                                          <asp:imagebutton ID="DeleteFeedLink" runat="server" ImageUrl="Images/DeleteIcon_X.gif" ToolTip="Delete"></asp:imagebutton> 
                                        </ItemTemplate> 
                                    </telerik:GridTemplateColumn> 
                                </Columns> 
 
                                  
                              </telerik:GridTableView> 
                      </DetailTables> 




2 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 20 Apr 2009, 03:59 AM
Hi Laura,

Give a try with the following approach and see if it is working.

CS:
 
 
 protected void providersGrid_preRender(object sender, EventArgs e) 
    { 
 
 
        foreach (GridDataItem item in providersGrid.Items) 
        { 
 
            if ((item.OwnerTableView.Name == "FeedTableView" && item is GridEditableItem )&&(item.IsInEditMode)) 
            { 
 
 
                GridEditableItem editableItem = item as GridEditableItem; 
 
                try 
                { 
                    ImageButton lookup = (ImageButton)editableItem["feedName"].FindControl("sourceLookUpButton"); 
                    lookup.Visible = false
                    RadGrid package_grid = (RadGrid)editableItem["packageGrid"].FindControl("packageGrid"); 
                    package_grid.Visible = true
                } 
                catch (Exception e1) 
                { 
                    int x = 1; 
                } 
            
 
 
        } 
    }  


Shinu.
0
Laura
Top achievements
Rank 1
answered on 20 Apr 2009, 02:24 PM
Thanks as always Shinu. I actually had to use GridEditFormItem rather than GridEditableItem and then it worked. I was able to implement it in the itemdatabound event handler. Here is my code:

if (e.Item.OwnerTableView.Name == "FeedTableView"
        { 
            if (e.Item is GridEditFormItem) 
            { 
                GridEditFormItem editItem = e.Item as GridEditFormItem; 
                try 
                { 
                    ImageButton lookup = (ImageButton)editItem["feedName"].FindControl("sourceLookUpButton"); 
                    lookup.Visible = false
 
                    RadGrid package_grid = (RadGrid)editItem["packageGrid"].FindControl("packageGrid"); 
                    package_grid.Visible = true
                } 
                catch (Exception e1) 
                { 
                    int x = 1; 
                } 
 
            } 
        } 

Tags
Grid
Asked by
Laura
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Laura
Top achievements
Rank 1
Share this question
or