Hello
I am trying to upload an image file using radgrid. I have followd the binary image upload in grid demo but my application is a bit diffirent and have tried several methods to accomplish this. I am adding my update parameters and data and calling the update method in code behind from the RadGrid_UpdateCommand.
I have tried putting the upload code in the UpdateCommand, DataBount and ItemCreated events but I am getting an error with the parameter and I am not sure if I am going on the right track.
Here is the aspx markup:
and here is the code behind:
I have some duplicated code in the Update, ItemCreated and ItemDataBound events as I am not sure where to go.
Many thanks
Chommy
I am trying to upload an image file using radgrid. I have followd the binary image upload in grid demo but my application is a bit diffirent and have tried several methods to accomplish this. I am adding my update parameters and data and calling the update method in code behind from the RadGrid_UpdateCommand.
I have tried putting the upload code in the UpdateCommand, DataBount and ItemCreated events but I am getting an error with the parameter and I am not sure if I am going on the right track.
Here is the aspx markup:
| <telerik:RadGrid ID="rgSlides" runat="server" GridLines="None" Skin="Hay" PageSize="8" |
| ClientSettings-Scrolling-SaveScrollPosition="true" AllowPaging="True"> |
| <HeaderStyle HorizontalAlign="Left" /> |
| <ItemStyle HorizontalAlign="Left" /> |
| <AlternatingItemStyle HorizontalAlign="Left" /> |
| <ClientSettings EnablePostBackOnRowClick="true"> |
| <Selecting AllowRowSelect="true" /> |
| </ClientSettings> |
| <PagerStyle Mode="NumericPages" /> |
| <MasterTableView PageSize="5" AutoGenerateColumns="False" DataKeyNames="OrderID" |
| CommandItemDisplay="Top" ShowHeadersWhenNoRecords="true" NoMasterRecordsText="Click New Slide to insert a new slide row." EditMode="PopUp"> |
| <Columns> |
| <telerik:GridButtonColumn CommandName="DeleteRow" CommandArgument="DeleteRow" HeaderText="" |
| Text="Delete" UniqueName="DeleteRow"> |
| </telerik:GridButtonColumn> |
| <telerik:GridTemplateColumn UniqueName="ID" SortExpression="ID" ReadOnly="true" Visible="false"> |
| <ItemTemplate> |
| <asp:Label ID="lblID" runat="server" Text='<% #Bind("ID") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="CustomerID" UniqueName="CustomerID" SortExpression="CustomerID" Visible="false"> |
| <ItemTemplate> |
| <asp:Label ID="lblCustomerID" runat="server" Text='<%#Bind("CustomerID") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="OrderID" UniqueName="OrderID" SortExpression="OrderID" Visible="false"> |
| <ItemTemplate> |
| <asp:Label ID="lblOrderID" runat="server" Text='<%# Bind("OrderID") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Business Number" UniqueName="BusinessListingNumber" SortExpression="BusinessListingNumber"> |
| <ItemTemplate> |
| <asp:Label ID="lblBusinessListingNumber" runat="server" Text='<%# Bind("BusinessListingNumber") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Slide ID" UniqueName="SlideID" SortExpression="SlideID"> |
| <ItemTemplate> |
| <asp:Label ID="lblSlideID" runat="server" Text='<%# Bind("SlideID") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="FileName" UniqueName="FileName" SortExpression="FileName" Visible="false"> |
| <ItemTemplate> |
| <asp:Label ID="lblFileName" runat="server" Text='<%# Bind("FileName") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Title" UniqueName="Title" SortExpression="Title"> |
| <ItemTemplate> |
| <asp:Label ID="lblTitle" runat="server" Text='<%# Bind("Title") %>' /> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox ID="txtTitle" runat="server" Text='<%# Bind("Title") %>' /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Description" UniqueName="Description" SortExpression="Description"> |
| <ItemTemplate> |
| <asp:Label ID="lblDescription" runat="server" Text='<%# Bind("Description") %>'></asp:Label> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox ID="txtDescription" runat="server" Text='<%# Bind("Description") %>' Width="350px" Height="50px" TextMode="MultiLine" /> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridBinaryImageColumn DataField="ImageData" HeaderText="Slide" UniqueName="Upload" ImageAlign="NotSet" |
| ImageHeight="80px" ImageWidth="80px" ResizeMode="Fit" DataAlternateTextField="Description" DataAlternateTextFormatString="Image od {0}"> |
| <HeaderStyle Width="10%" /> |
| </telerik:GridBinaryImageColumn> |
| <%--<telerik:GridTemplateColumn Visible="false"> |
| <EditItemTemplate> |
| <telerik:RadUpload ID="RadUpload1" runat="server"> |
| </telerik:RadUpload> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn>--%> |
| <telerik:GridEditCommandColumn> |
| </telerik:GridEditCommandColumn> |
| </Columns> |
| <EditFormSettings CaptionFormatString="Update Slide Info for SlideID: {0}" CaptionDataField="SlideID" |
| FormCaptionStyle-Font-Bold="true" PopUpSettings-Modal="true" PopUpSettings-Height="220" PopUpSettings-Width="450px"> |
| <EditColumn UniqueName="EditCommandColumn1" ButtonType="PushButton"> |
| </EditColumn> |
| </EditFormSettings> |
| <PagerStyle Mode="NextPrev" /> |
| <CommandItemTemplate> |
| <table style="float: left; width: 100%;"> |
| <tr> |
| <td style="text-align: left"> |
| <asp:Button ID="btnInsertNewRecord" runat="server" CommandName="InsertNewRecord" |
| Text="New Slide" Width="90px" Height="22px" /> |
| </td> |
| <td style="text-align: right"> |
| <asp:Button ID="btnRefresh" runat="server" CommandName="Refresh" Text="Refresh" Height="22px" /> |
| </td> |
| </tr> |
| </table> |
| </CommandItemTemplate> |
| </MasterTableView> |
| </telerik:RadGrid> |
| <br /><br /> |
| <asp:Label ID="lblTemplate" runat="server" Text="Template Label"></asp:Label> |
| <br /> |
| <br /> |
| <asp:Label ID="lblSlidesTest" runat="server" ForeColor="Blue" /> |
| <asp:SqlDataSource ID="dsSlides" runat="server" ConnectionString="<%$ myconnectionstring %>" |
| SelectCommand="admin_Customers_BusinessListings_Slides_SelectSlideInfo_1" SelectCommandType="StoredProcedure" |
| InsertCommand="admin_Customers_BusinessListings_Slides_InsertPrimaryInfo" InsertCommandType="StoredProcedure" |
| DeleteCommand="admin_Customers_BusinessListings_Slides_DeleteSlideRow_1" DeleteCommandType="StoredProcedure" |
| UpdateCommand="admin_Customers_BusinessListings_Slides_UpdateSlideInfo_1" UpdateCommandType="StoredProcedure"> |
| <SelectParameters> |
| <asp:Parameter Name="CustomerID" /> |
| <asp:Parameter Name="OrderID" /> |
| <asp:Parameter Name="BusinessListingNumber" /> |
| </SelectParameters> |
| <InsertParameters> |
| <asp:Parameter Name="CustomerID" Type="String" /> |
| <asp:Parameter Name="OrderID" Type="String" /> |
| <asp:Parameter Name="BusinessListingNumber" Type="Int16" /> |
| </InsertParameters> |
| <DeleteParameters> |
| <asp:Parameter Name="CustomerID" Type="String" /> |
| <asp:Parameter Name="OrderID" Type="String" /> |
| <asp:Parameter Name="SlideID" Type="String" /> |
| <asp:Parameter Name="BusinessListingNumber" Type="Int16" /> |
| </DeleteParameters> |
| <UpdateParameters> |
| <asp:Parameter Name="CustomerID" Type="String" /> |
| <asp:Parameter Name="OrderID" Type="String" /> |
| <asp:Parameter Name="SlideID" Type="String" /> |
| <asp:Parameter Name="BusinessListingNumber" Type="Int16" /> |
| <asp:Parameter Name="Title" Type="String" /> |
| <asp:Parameter Name="Description" Type="String" /> |
| <asp:Parameter Name="ImageData" Type="Byte"/> |
| </UpdateParameters> |
| </asp:SqlDataSource> |
and here is the code behind:
| Protected Sub rgSlides_UpdateCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles rgSlides.UpdateCommand |
| If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then |
| 'Get the value of the controls inside the grid template |
| Dim editItem As GridEditableItem = DirectCast(e.Item, GridEditableItem) |
| Dim CustomerID As String = TryCast(editItem("CustomerID").FindControl("lblCustomerID"), Label).Text |
| Dim OrderID As String = TryCast(editItem("OrderID").FindControl("lblOrderID"), Label).Text |
| Dim SlideID As String = TryCast(editItem("SlideID").FindControl("lblSlideID"), Label).Text |
| Dim BusListNo As String = TryCast(editItem("BusinessListingNumber").FindControl("lblBusinessListingNumber"), Label).Text |
| 'Get the value of the controls inside in the edit form |
| Dim editFormItem As GridEditFormItem = DirectCast(e.Item, GridEditFormItem) |
| Dim Title As String = DirectCast(editFormItem.FindControl("txtTitle"), TextBox).Text |
| Dim Desc As String = DirectCast(editFormItem.FindControl("txtDescription"), TextBox).Text |
| 'Update the slide |
| Dim upload As RadUpload = DirectCast(editItem.EditManager.GetColumnEditor("Upload"), GridBinaryImageColumnEditor).RadUploadControl |
| 'Fill update param's and call update method |
| dsSlides.UpdateParameters("CustomerID").DefaultValue = CustomerID |
| dsSlides.UpdateParameters("OrderID").DefaultValue = OrderID |
| dsSlides.UpdateParameters("SlideID").DefaultValue = SlideID |
| dsSlides.UpdateParameters("BusinessListingNumber").DefaultValue = BusListNo |
| dsSlides.UpdateParameters("Title").DefaultValue = Title |
| dsSlides.UpdateParameters("Description").DefaultValue = Desc |
| dsSlides.UpdateParameters("ImageData").DefaultValue = upload |
| dsSlides.Update() |
| End If |
| End Sub |
| Protected Sub rgSlides_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgSlides.ItemDataBound |
| If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then |
| Dim editItem As GridEditableItem = DirectCast(e.Item, GridEditableItem) |
| Dim upload As RadUpload = DirectCast(editItem.EditManager.GetColumnEditor("Upload"), GridBinaryImageColumnEditor).RadUploadControl |
| End If |
| End Sub |
| Protected Sub rgSlides_ItemCreated(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgSlides.ItemCreated |
| If TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode Then |
| Dim editItem As GridEditableItem = DirectCast(e.Item, GridEditableItem) |
| Dim upload As RadUpload = DirectCast(editItem.EditManager.GetColumnEditor("Upload"), GridBinaryImageColumnEditor).RadUploadControl |
| End If |
| End Sub |
I have some duplicated code in the Update, ItemCreated and ItemDataBound events as I am not sure where to go.
Many thanks
Chommy