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

Index Out Of Range Command Item Template

2 Answers 252 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Tracy
Top achievements
Rank 1
Tracy asked on 18 Feb 2011, 04:47 AM
Hi,

I have a page with a grid and a commanditemtemplate with link buttons.  I am trying to access the buttons in the command item template on the page pre-render event.  Based on the samples I have found I added the following code to the pre-render event, but I keep getting the IndexOutOfRange exception error on the first line.  

Private Sub WBC_SEC_Security_Users_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender

 

Dim cmditem As GridCommandItem = DirectCast(rgvSecurityUsers.MasterTableView.GetItems(GridItemType.CommandItem)(0), GridCommandItem)

 

 

 

Dim lnkAdd As LinkButton = TryCast(cmditem.FindControl("lbtAdd"), LinkButton)

 

 

 

 

 

End Sub



Reading through the forums the problem seems to be caused by having the CommandItemDisplay property set to none but I have mine set to Top.  The only thing that is different on my page is that it is has a master page.

Does anyone know what could be causing this problem.

Thank you for your help.
Tracy

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/IPSMaster.Master" CodeBehind="WBC SEC Security Users.aspx.vb" Inherits="IPS_Gateway.WBC_SEC_Security_Users" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>
    
<asp:Content ID="cntMain" ContentPlaceHolderID="cphMainContent" runat="server" >
  
  
<asp:SqlDataSource ID="SQLDS_SecurityUsers"     runat="server"  ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>"  
        SelectCommandType="StoredProcedure" SelectCommand="[Security].[DSP_SecurityUsers-SEL-INS-UPD-DEL]" >
        <SelectParameters>
            <asp:Parameter Name="strCommandType" Type="String" DefaultValue="Select" />
        </SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SQLDS_Employees"     runat="server"  ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>"  
        SelectCommandType="StoredProcedure" SelectCommand="[Employees].[DSP_EmployeeMaster-Select]" />
  
<asp:SqlDataSource ID="SQLDS_SecurityType"     runat="server"  ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>"  
        SelectCommandType="StoredProcedure" SelectCommand="[Security].[DSP_SecurityIdentifiers-Select]" >
        <SelectParameters>
            <asp:Parameter Name="strIdentifierType" Type="String" DefaultValue="Type" />
        </SelectParameters>
</asp:SqlDataSource>
  
<asp:SqlDataSource ID="SQLDS_SecurityStatus"     runat="server"  ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>"  
        SelectCommandType="StoredProcedure" SelectCommand="[Security].[DSP_SecurityIdentifiers-Select]" >
        <SelectParameters>
            <asp:Parameter Name="strIdentifierType" Type="String" DefaultValue="Status" />
        </SelectParameters>
</asp:SqlDataSource>
  
  
<asp:panel ID="pnlPage"                                 runat="server"  SkinId="skn_GPC01_Panel_MainContent">
        
      <telerik:RadAjaxManager ID="RadAjaxManager2"  runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="rgvSecurityGroups">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="rgvSecurityUsers" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="rwmSecuritySettings" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" BackgroundPosition="Center"  ZIndex="150"  
        <asp:Image ID="imgLoading" runat="server" ImageUrl='<%$Resources:Images, LoadingBlack %>' AlternateText="Loading"   />
    </telerik:RadAjaxLoadingPanel>
  
  
  
    <asp:panel ID="pnlPageHeader"                runat="server"  cssClass="css_GPC01_Panel_PageHeading" >       
        <asp:Label ID="txtPageTitle"             runat="server"  CssClass="css_GPC01_Label_PageTitle" Text="Security Users" />   
        <asp:ImageButton ID="ibtPageInformation" runat="server"  SkinID="skn_GPC01_ImageButton_PageInformation"  />
        <asp:HiddenField ID="hdfObjectId"        runat="server" />
    </asp:panel>    
  
    <asp:Panel ID="pnlPageContent"               runat="server"  cssClass="css_GPC01_Panel_PageContent" >     
        <telerik:RadGrid ID="rgvSecurityUsers"   runat="server"  DataSourceID="SQLDS_SecurityUsers" 
                EnableEmbeddedSkins = "true"     Skin="WebBlue"
                AllowMultiRowSelection="false" 
                AllowAutomaticDeletes="True" 
                AllowAutomaticInserts="True"  
                AllowAutomaticUpdates="True"  
                AllowPaging="True" 
                EnableViewState ="true"                 
                AutoGenerateColumns="False"
                height="560px">
                                  
            <PagerStyle AlwaysVisible="true" Mode="NextPrevAndNumeric" />
            <ClientSettings AllowColumnsReorder="false" EnablePostBackOnRowClick="true" 
                            AllowExpandCollapse="true"   >  
                <Selecting AllowRowSelect="true" />
                <Scrolling AllowScroll="true" UseStaticHeaders="true" />
            </ClientSettings>
            <MasterTableView    DataSourceID="SQLDS_SecurityUsers" DataKeyNames="UserID, UserLoginId"     
                EditMode="InPlace" CommandItemDisplay="Top"  PageSize="30"   >
                <CommandItemTemplate >
                    <div style="padding: 5px 5px;">
                        <asp:LinkButton ID="lbtAdd"          runat="server" CommandName="InitInsert"     ToolTip="Add New Group"                Visible='<%# Eval("hdfAdd") And (rgvSecurityUsers.EditIndexes.Count > 0 or Not rgvSecurityUsers.MasterTableView.IsItemInserted) %>'><asp:Image ID="imgAdd" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images,AddRecord20%>" /> Add </asp:LinkButton>  
                        <asp:LinkButton ID="lbtEdit"         runat="server" CommandName="EditSelected"   ToolTip ="Edit Group"                  Visible='<%# Eval("hdfEdit") And (rgvSecurityUsers.EditIndexes.Count = 0 and Not rgvSecurityUsers.MasterTableView.IsItemInserted) %>'>          <asp:Image ID="Image1" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images, EditRecord20%>"/> Edit </asp:LinkButton>  
                        <asp:LinkButton ID="lbtCancel"       runat="server" CommandName="CancelAll"      ToolTip ="Cancel Edit/Add"             Visible='<%# rgvSecurityUsers.EditIndexes.Count > 0 Or rgvSecurityUsers.MasterTableView.IsItemInserted %>'><asp:Image ID="imgCancel" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images,CancelRecord20%>" /> Cancel </asp:LinkButton>  
                        <asp:LinkButton ID="lbtSaveNew"      runat="server" CommandName="PerformInsert"  ToolTip ="Save New Group"              Visible='<%# rgvSecurityUsers.MasterTableView.IsItemInserted%>'><asp:Image ID="imgSaveNew" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images,SaveRecord20%>" /> Save New</asp:LinkButton>  
                        <asp:LinkButton ID="lbtDelete"       runat="server" CommandName="DeleteSelected" ToolTip ="Delete Group"                Visible='<%# Eval("hdfDelete") And (rgvSecurityUsers.EditIndexes.Count = 0 and Not rgvSecurityUsers.MasterTableView.IsItemInserted) %>'><asp:Image ID="imgDelete"       runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images,DeleteRecord20%>" />Delete </asp:LinkButton>  
                        <asp:LinkButton ID="lbtSave"         runat="server" CommandName="UpdateEdited"   ToolTip ="Save Changes"                Visible='<%# rgvSecurityUsers.EditIndexes.Count > 0 AND Not rgvSecurityUsers.MasterTableView.IsItemInserted%>'><asp:Image ID="Image2" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images,SaveRecord20%>" />  Update </asp:LinkButton>  
                        <asp:LinkButton ID="lbtSettings"     runat="server" CommandName="ShowSettings"   ToolTip ="Edit/View Security Settings" Visible='<%# rgvSecurityUsers.EditIndexes.Count=0 AND Not rgvSecurityUsers.MasterTableView.IsItemInserted%>'><asp:Image ID="Image3" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$ Resources:Images,SecuritySettings20%>" /> Security Settings  </asp:LinkButton>  
                        <asp:LinkButton ID="lbtRefresh"      runat="server" CommandName="RebindGrid"     style="position:absolute;Left:930px;" ><asp:Image id="imgRefresh" runat="server" CssClass="css_GFS01_Image_Align" ImageURL="<%$Resources:Images, ReloadBlue20 %>"  />Refresh Grid</asp:LinkButton>                     
                    </div>
                </CommandItemTemplate>
                    <Columns>                    
                        <telerik:GridBoundColumn    DataField="UserId"                   UniqueName="UserId"             HeaderText="Id"            HeaderStyle-HorizontalAlign="Left"     HeaderStyle-Width="50px"   ReadOnly="true"/>
                        <telerik:GridTemplateColumn UniqueName="gtcEmployeeNumber" 
                            HeaderText="Employee"   HeaderStyle-Width="70px"
                            SortExpression="EmployeeNumber">
                            <FooterTemplate> Template footer</FooterTemplate>
                            <FooterStyle VerticalAlign="Middle" HorizontalAlign="Center" />
                            <ItemTemplate>
                                <%#DataBinder.Eval(Container.DataItem, "EmployeeNumber")%>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <telerik:RadComboBox runat="server" ID="EmployeeNumber"  DataSourceID="SQLDS_Employees"
                                    DataValueField="EmployeeNumber"  DataTextField="EmployeeName"                                     
                                    AutoPostBack="true"
                                    HighlightTemplatedItems="true"  Height="200px" Width="150px" 
                                    DropDownWidth="400px"
                                    OnSelectedIndexChanged="OnSelectedIndexChangedHandler">
                                    <HeaderTemplate>
                                        <ul>
                                            <li class="css_GFS01_Combo_Col1">Name</li>
                                            <li class="css_GFS01_Combo_Col2">Emp#</li>
                                        </ul>
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <ul>
                                            <li class="css_GFS01_Combo_Col1">  <%#DataBinder.Eval(Container, "Text")%> </li>
                                            <li class="css_GFS01_Combo_Col2">  <%#DataBinder.Eval(Container, "Value")%></li>
                                        </ul>
                                    </ItemTemplate>
                                </telerik:RadComboBox>
                            </EditItemTemplate>
                        </telerik:GridTemplateColumn>
                        <telerik:GridBoundColumn     DataField="UserName"                UniqueName="UserName"           HeaderText="User Name"     HeaderStyle-HorizontalAlign="Left"     HeaderStyle-Width="150px"   ColumnEditorID ="gtcEditor1"/>
                        <telerik:GridBoundColumn     DataField="UserLoginId"             UniqueName="UserLoginId"        HeaderText="Login Id"      HeaderStyle-HorizontalAlign="Left"     HeaderStyle-Width="150px"   ColumnEditorID ="gtcEditor1"/>
                        <telerik:GridDropDownColumn  DataSourceID="SQLDS_SecurityType"   DropDownControlType="RadComboBox"                     
                                                     DataField="SecurityType"            UniqueName="SecurityType" 
                                                     ListTextField="Level2"              ListValueField="Level2"                            
                                                     HeaderText="Security Type"          HeaderStyle-Width="100px"   
                                                     DefaultInsertValue="Group" />
                          
                        <telerik:GridDropDownColumn  DataSourceID="SQLDS_SecurityStatus" DropDownControlType="RadComboBox"            
                                                     DataField="UserStatus"              UniqueName="UserStatus" 
                                                     ListTextField="Level2"              ListValueField="Level2"                            
                                                     HeaderText="Status"                 HeaderStyle-Width="100px"   
                                                     DefaultInsertValue="Active" />
                                                          
                        <telerik:GridBoundColumn     DataField="CreatedBy"               UniqueName="CreatedBy"         HeaderText="Created By"     HeaderStyle-HorizontalAlign="Left"     HeaderStyle-Width="100px"   ItemStyle-HorizontalAlign="Left"    ReadOnly="true"  />
                        <telerik:GridBoundColumn     DataField="CreatedDate"             UniqueName="CreatedDate"       HeaderText="Created Date"   HeaderStyle-HorizontalAlign="Center"   HeaderStyle-Width="120px"   ItemStyle-HorizontalAlign="Center"  DataType="System.DateTime" DataFormatString="{0:MM/dd/yy h:mm:ss t}"   ReadOnly="true" />
                        <telerik:GridBoundColumn     DataField="UpdatedBy"               UniqueName="UpdatedBy"         HeaderText="Updated By"     HeaderStyle-HorizontalAlign="Left"     HeaderStyle-Width="100px"   ItemStyle-HorizontalAlign="Left"    ReadOnly="true" />
                        <telerik:GridBoundColumn     DataField="UpdatedDate"             UniqueName="UpdatedDate"       HeaderText="Updated Date"   HeaderStyle-HorizontalAlign="Center"   HeaderStyle-Width="120px"   ItemStyle-HorizontalAlign="Center"  DataType="System.DateTime" DataFormatString="{0:MM/dd/yy h:mm:ss t}" ReadOnly="true" />
                    </Columns>
            </MasterTableView>
        </telerik:RadGrid>
        <telerik:GridTextBoxColumnEditor ID="gtcEditor1" runat="server" TextBoxStyle-Width="150px" />         <telerik:RadWindowManager ID="rwmMessageBox" runat="server" Behaviors="Close, Move"  EnableViewState ="false" Animation="Slide" AnimationDuration="5"  Height="400" Width = "400" VisibleOnPageLoad ="true" DestroyOnClose="true"  Modal="true"   EnableEmbeddedSkins="true" Skin="Black" />
        <telerik:RadWindowManager ID="rwmSecuritySettings" runat="server" Behaviors="Close, Move"  EnableViewState ="false" Animation="Slide" AnimationDuration="5"  Height="700" Width = "835" VisibleOnPageLoad ="true" DestroyOnClose="true"  Modal="true"  Style="z-index:3000"  />
  
    </asp:Panel>
    <asp:Panel ID="pnlFooter" runat="server"  CssClass="css_GPC01_Panel_Footer">
        <asp:Label ID="lblReadOnly" runat="server" Text="Read Only" CssClass="css_GPC01_Footer_Labels"/>
        <asp:Label ID="lblAdd"      runat="server" Text="Add"       CssClass="css_GPC01_Footer_Labels"/>
        <asp:Label ID="lblEdit"     runat="server" Text="Edit"      CssClass="css_GPC01_Footer_Labels"/>        
        <asp:Label ID="lblDelete"   runat="server" Text="Delete"    CssClass="css_GPC01_Footer_Labels"/>
        <asp:Label ID="lblObject"   runat="server" Text="Object"    CssClass="css_GPC01_Footer_Labels"/>
        <asp:HiddenField ID="hdfReadOnly"   runat="server" />
        <asp:HiddenField ID="hdfAdd"        runat="server" />
        <asp:HiddenField ID="hdfEdit"       runat="server" />
        <asp:HiddenField ID="hdfDelete"     runat="server" />
    </asp:Panel>
</asp:panel
</asp:Content>




 


 Reading through the forums the problem seems to be caused by not having the CommandItemDisplay property set to none but I have mine set to Top.  The only thing that is different on my page is that it is has a master page.

 

2 Answers, 1 is accepted

Sort by
0
Accepted
Princy
Top achievements
Rank 2
answered on 18 Feb 2011, 06:52 AM
Hello Tracy,

You are getting this error because of accessing the GridCommandItem in page PreRender event. Try to access it in RadGrid PreRender event and check if it works.

Vb.Net:
Protected Sub rgvSecurityUsers_PreRender(sender As Object, e As EventArgs)
    Dim commandItem As GridCommandItem = DirectCast(rgvSecurityUsers.MasterTableView.GetItems(GridItemType.CommandItem)(0), GridCommandItem)
End Sub


Thanks,
Princy.
0
Tracy
Top achievements
Rank 1
answered on 18 Feb 2011, 06:01 PM
Thank you.
Tags
Grid
Asked by
Tracy
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Tracy
Top achievements
Rank 1
Share this question
or