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

Finding a control in the RadGridView.EditFormSettings.FormTemplate

7 Answers 786 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Michael
Top achievements
Rank 1
Michael asked on 09 Aug 2011, 10:55 PM
I have a page with a RadGrid on it. In that RadGrid I'm using  <EditFormSettings EditFormType="Template"> to handle the editing of the data. In that FormTemplate I have a FileUpload control where I'm allowing users to upload a file. I planned on handling the file upload in a seperate function. Problem is trying to get to the FileUpload control. Can someone help me? Code sample below:
<telerik:RadGrid 
    ID="rgvwUserList" 
    runat="server" 
    AllowAutomaticDeletes="True" 
    AllowAutomaticInserts="True" 
    AllowAutomaticUpdates="True" 
    AllowFilteringByColumn="True" 
    AllowPaging="True" 
    AllowSorting="True" 
    AutoGenerateColumns="False" 
    CellSpacing="0" 
    DataSourceID="sdsUserList" 
    EnableLinqExpressions="False" 
    GridLines="None" 
    PageSize="20" 
    ShowGroupPanel="True" 
    Width="900px">
    <ClientSettings AllowDragToGroup="True"/>
    <MasterTableView 
        AutoGenerateColumns="False" 
        CommandItemDisplay="None" 
        DataKeyNames="StaffID" 
        DataSourceID="sdsUserList"
        EditMode="EditForms" 
        HorizontalAlign="NotSet" 
        Width="100%">
        <Columns>
            <telerik:GridEditCommandColumn ButtonType="ImageButton" HeaderText="Edit" ItemStyle-HorizontalAlign="Center" UniqueName="EditCommandColumn">
                <ItemStyle CssClass="MyImageButton" Wrap="False" />
            </telerik:GridEditCommandColumn>
            <telerik:GridTemplateColumn AllowFiltering="False">
                <HeaderStyle HorizontalAlign="Center"/>
                <HeaderTemplate>Photo</HeaderTemplate>
                <ItemStyle HorizontalAlign="Center"/>
                <ItemTemplate>
                    <asp:Image ID="imgPhoto" runat="server" ImageUrl='<%#EVAL("PhotoPath") %>' Width="50"/>
                </ItemTemplate>
            </telerik:GridTemplateColumn>
            <telerik:GridBoundColumn DataField="DisplayName" FilterControlAltText="Filter DisplayName column" HeaderText="DisplayName" ItemStyle-Width="20%" ReadOnly="True" SortExpression="LastName" UniqueName="DisplayName"/>
        </Columns>
        <EditFormSettings EditFormType="Template">
            <FormTemplate>
                <div align="center">
                    <asp:FileUpload ID="fuPhotoPath" runat="server" SkinID="FileUpload" Width="290"/>
                    <asp:Button ID="btnAddPhoto" runat="server" CommandArgument='<%#Bind("StaffID")%>' OnCommand="UploadPhoto" SkinID="ButtonLittle" Text="Add"/>
                </div>
            </FormTemplate>
        </EditFormSettings>
    </MasterTableView>
</telerik:RadGrid>

7 Answers, 1 is accepted

Sort by
0
Accepted
Jayesh Goyani
Top achievements
Rank 2
answered on 10 Aug 2011, 05:33 AM
Hello,

<telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource"
           AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True" GridLines="None"
           ShowFooter="True" AllowMultiRowSelection="True" PageSize="7" AllowMultiRowEdit="True"
           OnInsertCommand="RadGrid1_InsertCommand" OnUpdateCommand="RadGrid1_UpdateCommand">
           <MasterTableView EditMode="EditForms" DataKeyNames="ID">
               <Columns>
                   <telerik:GridBoundColumn DataField="ID" HeaderText="ID">
                   </telerik:GridBoundColumn>
                   <telerik:GridEditCommandColumn UniqueName="EditColumn">
                   </telerik:GridEditCommandColumn>
               </Columns>
               <EditFormSettings EditFormType="Template">
                   <FormTemplate>
                       <div align="center">
                           <asp:FileUpload ID="fuPhotoPath" runat="server" Width="290" />
                           <asp:Button ID="btnAddPhoto" runat="server" Text="Add" OnClick="btnAddPhoto_Click" />
                       </div>
                   </FormTemplate>
               </EditFormSettings>
           </MasterTableView>
       </telerik:RadGrid>
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        dynamic data = new[] {
                new { ID = 1, Name ="Name1",TempDate = DateTime.Now},
                new { ID = 2, Name = "Name2",TempDate = DateTime.Now},
                new { ID = 3, Name = "Name3",TempDate = DateTime.Now},
                new { ID = 4, Name = "Name4",TempDate = DateTime.Now},
                new { ID = 5, Name = "Name5",TempDate = DateTime.Now},
                new { ID = 6, Name ="Name6",TempDate = DateTime.Now},
                new { ID = 7, Name = "Name7",TempDate = DateTime.Now},
                new { ID = 8, Name = "Name8",TempDate = DateTime.Now},
                new { ID = 9, Name = "Name9",TempDate = DateTime.Now},
                new { ID = 10, Name = "Name10",TempDate = DateTime.Now},
                new { ID = 11, Name ="Name11",TempDate = DateTime.Now},
                new { ID = 12, Name = "Name12",TempDate = DateTime.Now},
                new { ID = 13, Name = "Name13",TempDate = DateTime.Now},
                new { ID = 14, Name = "Name14",TempDate = DateTime.Now},
                new { ID = 15, Name = "Name15",TempDate = DateTime.Now}
            };
 
        RadGrid1.DataSource = data;
    }
    protected void RadGrid1_InsertCommand(object sender, GridCommandEventArgs e)
    {
 
    }
    protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e)
    {
         
    }
    protected void btnAddPhoto_Click(object sender, EventArgs e)
    {
        Button btnAddPhoto = sender as Button;
        GridEditFormItem item = (GridEditFormItem)btnAddPhoto.NamingContainer;
        FileUpload fuPhotoPath = item.FindControl("fuPhotoPath") as FileUpload;
        int ID =Convert.ToInt32(item.GetDataKeyValue("ID"));
    ///.......do your logic here
    }

let me know if any concern.

Thanks,
Jayesh Goyani
0
Shinu
Top achievements
Rank 2
answered on 10 Aug 2011, 05:51 AM
Hello Michael,

Try the following code snippet.
C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
  if (e.Item is GridEditableItem && e.Item.IsInEditMode)
     {
        GridEditableItem item = (GridEditableItem)e.Item;
        FileUpload upload = (FileUpload)item.FindControl("fuPhotoPath");
     }
}

Thanks,
Shinu.
0
Michael
Top achievements
Rank 1
answered on 10 Aug 2011, 02:30 PM
Jayesh Goyani, you rock. That worked perfectly!
0
Rohit
Top achievements
Rank 1
answered on 26 May 2015, 12:14 PM

Jayesh Goyani i have same work to do by on page_load() event of the aspx page.

can u help me with it.

0
Jayesh Goyani
Top achievements
Rank 2
answered on 26 May 2015, 05:53 PM

Hello Rohit,

It would be nice if you will do some work in page_prerender event. Because all the control and its value assigned into grid created and itemdatabound event. This event is executed after page-load event.

 Let me know if any concern.

http://www.telerik.com/help/aspnet-ajax/grid-event-sequence.html

Thanks,

Jayesh Goyani

0
Rohit
Top achievements
Rank 1
answered on 27 May 2015, 04:31 AM
<telerik:RadGrid ID="radgrdFamilyHealth" runat="server" Width="98%" AutoGenerateColumns="false"
                                            OnNeedDataSource="radgrdFamilyHealth_NeedDataSource" OnUpdateCommand="radgrdFamilyHealth_UpdateCommand"
                                            OnInsertCommand="radgrdFamilyHealth_InsertCommand" OnItemCommand="radgrdFamilyHealth_ItemCommand"
                                            OnDeleteCommand="radgrdFamilyHealth_DeleteCommand"  OnItemDataBound="radgrdFamilyHealth_ItemDataBound"
                                             >
                                            <MasterTableView CommandItemDisplay="Top" DataKeyNames="FamilyHealthid">
                                                <CommandItemSettings ShowAddNewRecordButton="true" />
                                                <ColumnGroups>
                                                    <telerik:GridColumnGroup HeaderText="If Alive" Name="IfAlive" HeaderStyle-HorizontalAlign="Center">
                                                    </telerik:GridColumnGroup>
                                                    <telerik:GridColumnGroup HeaderText="If Deceased (Y/N)" Name="IfDeceased" HeaderStyle-HorizontalAlign="Center"></telerik:GridColumnGroup>
                                                </ColumnGroups>
                                                <Columns>
                                                    <telerik:GridEditCommandColumn Visible="false" ButtonType="ImageButton">
                                                    </telerik:GridEditCommandColumn>
                                                    <telerik:GridBoundColumn DataField="FamilyHealthid" HeaderText="Sr.No." SortExpression="FamilyHealthid" HeaderStyle-HorizontalAlign="Center"
                                                        UniqueName="FamilyHealthid">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridBoundColumn DataField="Member" HeaderText="Member" HeaderStyle-HorizontalAlign="Center"
                                                        SortExpression="Member" UniqueName="Member">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridBoundColumn DataField="PresentAge" HeaderText="Present Age" SortExpression="PresentAge" HeaderStyle-HorizontalAlign="Center"
                                                        UniqueName="PresentAge" ColumnGroupName="IfAlive">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridBoundColumn DataField="Illness" HeaderText="Illness" SortExpression="Illness" HeaderStyle-HorizontalAlign="Center"
                                                        UniqueName="Illness" ColumnGroupName="IfAlive">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridBoundColumn DataField="YearofDeath" HeaderText="Year of Death" SortExpression="YearofDeath" HeaderStyle-HorizontalAlign="Center"
                                                        UniqueName="YearofDeath" ColumnGroupName="IfDeceased">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridBoundColumn DataField="AgeatDeath" HeaderText="Age at Death" SortExpression="AgeatDeath" HeaderStyle-HorizontalAlign="Center"
                                                        UniqueName="AgeatDeath" ColumnGroupName="IfDeceased">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridBoundColumn DataField="CauseofDeath" HeaderText="Cause of Death" SortExpression="CauseofDeath" HeaderStyle-HorizontalAlign="Center"
                                                        UniqueName="CauseofDeath">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridButtonColumn Text="Delete" CommandName="Delete" HeaderText="Delete"
                                                        ButtonType="ImageButton" />
                                                                                                    </Columns>
                                                <EditFormSettings EditFormType="Template">
                                                    <FormTemplate>
                                                        <table id="Table2" cellspacing="2" cellpadding="1" width="100%" border="0" rules="none"
                                                            style="border-collapse: collapse;">
                                                            <tr>
                                                                <td>
                                                                    <table id="Table3" width="100%" border="0" class="module" cellpadding="0px" cellspacing="0px">
                                                                        <tr>
                                                                            <td class="tdtext paddingtabletdleft">
                                                                                Member:
                                                                            </td>
                                                                            <td colspan="3" class="paddingtabletdleft">
                                                                            <telerik:RadDropDownList ID="raddrpMember" runat="server" SelectedValue='<%# Bind("Member") %>' 
                                                                                    AppendDataBoundItems="true" >
                                                                                    <Items>
                                                                                        <telerik:DropDownListItem Text="Select" Selected="true" Value="0" />
                                                                                        <telerik:DropDownListItem Text="Mr" Value="Mr" />
                                                                                        <telerik:DropDownListItem Text="Mrs" Value="Mrs" />
                                                                                        <telerik:DropDownListItem Text="Ms" Value="Ms" />
                                                                                    </Items>
                                                                                </telerik:RadDropDownList>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td colspan="4">
                                                                                   
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="tdtext paddingtabletdleft">
                                                                               Present Age
                                                                            </td>
                                                                            <td class="paddingtabletdleft" colspan="3">
                                                                               <telerik:RadDropDownList ID="raddrpPresentAge" runat="server" SelectedValue='<%# Bind("PresentAge") %>' 
                                                                                    AppendDataBoundItems="true" >
                                                                                    <Items>
                                                                                    </Items>
                                                                                </telerik:RadDropDownList>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td colspan="4">
                                                                                   
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="tdtext paddingtabletdleft">
                                                                               Illness
                                                                            </td>
                                                                            <td colspan="3" class="paddingtabletdleft">
                                                                                 <telerik:RadDropDownList ID="raddrpIllness" runat="server" SelectedValue='<%# Bind("Illness") %>' 
                                                                                    AppendDataBoundItems="true" >
                                                                                    <Items>
                                                                                        <telerik:DropDownListItem Text="Select" Selected="true" Value="0" />
                                                                                        <telerik:DropDownListItem Text="Yes" Value="Yes" />
                                                                                        <telerik:DropDownListItem Text="No" Value="No" />
                                                                                    </Items>
                                                                                </telerik:RadDropDownList>
                                                                            </td>
                                                                        </tr>
                                                                          
                                                                        <tr>
                                                                            <td colspan="4">
                                                                                   
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="tdtext paddingtabletdleft">
                                                                                Year of Death
                                                                            </td>
                                                                            <td colspan="3" class="paddingtabletdleft">
                                                                                <telerik:RadTextBox ID="RadTextBox7" runat="server" Text='<%# Bind("YearofDeath") %>'>
                                                                                </telerik:RadTextBox>
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td colspan="4">
                                                                                   
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="tdtext paddingtabletdleft">
                                                                               Cause of Death
                                                                            </td>
                                                                            <td colspan="3" class="paddingtabletdleft">
                                                                                <telerik:RadTextBox ID="RadTextBox4" runat="server" Text='<%# Bind("CauseofDeath") %>'>
                                                                                </telerik:RadTextBox>
                                                                            </td>
                                                                        </tr> <tr>
                                                                            <td colspan="4">
                                                                                   
                                                                            </td>
                                                                        </tr>
                                                                        <tr>
                                                                            <td class="tdtext paddingtabletdleft">
                                                                                Age at Death
                                                                            </td>
                                                                            <td colspan="3" class="paddingtabletdleft">
                                                                                <telerik:RadTextBox ID="RadTextBox3" runat="server" Text='<%# Bind("AgeatDeath") %>'>
                                                                                </telerik:RadTextBox>
                                                                            </td>
                                                                        </tr>
                                                                    </table>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td>
                                                                       
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td align="right">
                                                                    <asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
                                                                        runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'>
                                                                    </asp:Button
                                                                    <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False"
                                                                        CommandName="Cancel"></asp:Button>
                                                                </td>
                                                            </tr>
                                                        </table>
                                                    </FormTemplate>
                                                </EditFormSettings>
                                            </MasterTableView>
                                        </telerik:RadGrid>

raddrpPresentAge and raddrpMember this two raddropdownlist need to be populated at page load but with the "itemdatabound" it cause issue while editing.

0
Jayesh Goyani
Top achievements
Rank 2
answered on 17 Jun 2015, 07:00 AM

Hello Rohit,

Could you please provide issue detail?

 Thanks,

Jayesh Goyani

Tags
Grid
Asked by
Michael
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Shinu
Top achievements
Rank 2
Michael
Top achievements
Rank 1
Rohit
Top achievements
Rank 1
Share this question
or