Friday, August 30, 2013

FileUpload in Gridview using Update panel


When I was working on a project, where i need to upload file to server using Gridview and Updatepanel.but I faced a problem that every time Fileupload has no file.File upload doesn't work because file upload need always post the file to server with form data means file upload need a full post back to server for that solution is as simple just add a post back trigger for the button control in which you need to upload file to server but there is another situation when file upload inside the gridview or datalist for doing the task row wise , we cannot add a trigger for the control that placed inset the data bind control and cannot add trigger at runtime in databound event of that particular databind control so what is the solution for that.

Below is the solution for this type of situation you need to add another updatepanel  for fileupload control inside gridview and need to add full postback trigger for upload button control just like shown below.

<asp:GridView ID="gvDetails"  runat="server"
AutoGenerateColumns="False" CssClass="mGrid" 
    PagerStyle-CssClass="pgr" 
    AlternatingRowStyle-CssClass="alt"
ShowFooter="True"
onrowcancelingedit="gvDetails_RowCancelingEdit"
onrowdeleting="gvDetails_RowDeleting" onrowediting="gvDetails_RowEditing"
onrowupdating="gvDetails_RowUpdating"
onrowcommand="gvDetails_RowCommand" EnableModelValidation="True"
                     onrowdatabound="gvDetails_RowDataBound" Width="750px"
            AllowPaging="True" onpageindexchanging="gvDetails_PageIndexChanging"
            PageSize="25">
            <AlternatingRowStyle CssClass="alt" />
<Columns>
<asp:TemplateField>
<EditItemTemplate>
<asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server" ImageUrl="Images/update.png" ToolTip="Update" Height="20px" Width="20px" />
<asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel" ImageUrl="Images/Cancel.png" ToolTip="Cancel" Height="20px" Width="20px" />
</EditItemTemplate>
<ItemTemplate>
<asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="Images/Edit.png" ToolTip="Edit" Height="20px" Width="20px" />
<asp:ImageButton ID="imgbtnDelete" CommandName="Delete" Text="Edit" runat="server" ImageUrl="Images/delete.png" ToolTip="Delete" Height="20px" Width="20px" />
</ItemTemplate>
<HeaderTemplate><asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updFUi">
                <ContentTemplate>
<asp:ImageButton ID="imgbtnAdd" runat="server" ImageUrl="Images/AddNewitem.png" CommandName="AddNew" Width="30px" Height="30px" ToolTip="Add new Topic" ValidationGroup="validaiton" />
</ContentTemplate><Triggers>
              <asp:PostBackTrigger ControlID="imgbtnAdd" />
            </Triggers></asp:UpdatePanel></HeaderTemplate>
</asp:TemplateField>
<asp:TemplateField >

<ItemTemplate>
<asp:Label ID="lbldept" runat="server" Text='<%#Eval("Department") %>'/>
</ItemTemplate>
<EditItemTemplate><asp:DropDownList ID="ddldept1" runat="server"></asp:DropDownList>
   </EditItemTemplate>
<HeaderTemplate>
       
        <asp:DropDownList ID="ddldept" runat="server" Width="70px"></asp:DropDownList>
    <asp:CascadingDropDown ID="ccdept" runat="server" Category="department" TargetControlID="ddldept" PromptText="Department" LoadingText="Loading Department.." ServiceMethod="Binddepartment" ServicePath="WebService.asmx">
</asp:CascadingDropDown>
</HeaderTemplate>
</asp:TemplateField>
 <asp:TemplateField >

<ItemTemplate>
<asp:Label ID="lblsubject" runat="server" Text='<%#Eval("Sub_SubjectName") %>'/>
</ItemTemplate>
<EditItemTemplate><asp:DropDownList ID="ddlsub1" runat="server" Width="70px"></asp:DropDownList>
</EditItemTemplate>
<HeaderTemplate>
       
       <asp:DropDownList ID="ddlsub" runat="server"></asp:DropDownList>
<asp:CascadingDropDown ID="ccdsub" runat="server" Category="Subject"  ParentControlID="ddldept" TargetControlID="ddlsub" PromptText="Subject" LoadingText="Loading Subject.." ServiceMethod="BindSubjectDetails" ServicePath="WebService.asmx">
</asp:CascadingDropDown>
</HeaderTemplate>
</asp:TemplateField>
        <asp:TemplateField >

<ItemTemplate>
<asp:Label ID="lbltopicname" runat="server" Text='<%#Eval("Sub_SubjectName") %>'/>
</ItemTemplate>
<EditItemTemplate><asp:DropDownList ID="ddltopic" runat="server" Width="70px"></asp:DropDownList>
</EditItemTemplate>
<HeaderTemplate>
       
       <asp:DropDownList ID="ddltopicn" runat="server"></asp:DropDownList>
<asp:CascadingDropDown ID="ccdtopic" runat="server" Category="Topic"  ParentControlID="ddlsub" TargetControlID="ddltopicn" PromptText="Topic" LoadingText="Loading Topic.." ServiceMethod="Bindtopicbysubjectwise" ServicePath="WebService.asmx">
</asp:CascadingDropDown>
</HeaderTemplate>
</asp:TemplateField>
        <asp:TemplateField  ><ItemTemplate><asp:label ID="lblvideoname" runat="server"  Text='<%#Eval("topic") %>'></asp:label></ItemTemplate>
       
           
            <HeaderStyle HorizontalAlign="Left" />
            <ItemStyle HorizontalAlign="Left" />
            <HeaderTemplate><asp:TextBox ID="txtvideo" runat="server" Width="70px"></asp:TextBox>
            <asp:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender2" runat="server" TargetControlID="txtvideo" WatermarkText="Video name">
                </asp:TextBoxWatermarkExtender>
</HeaderTemplate>
            </asp:TemplateField>
            <asp:TemplateField  ><ItemTemplate><asp:label ID="lblsession" runat="server"  Text='<%#Eval("topic") %>'></asp:label></ItemTemplate>
       
           
            <HeaderStyle HorizontalAlign="Left" />
            <ItemStyle HorizontalAlign="Left" />
            <HeaderTemplate><asp:TextBox ID="txtsession" runat="server" Width="70px"></asp:TextBox>
            <asp:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender3" runat="server" TargetControlID="txtsession" WatermarkText="Video Session">
                </asp:TextBoxWatermarkExtender>
</HeaderTemplate>
            </asp:TemplateField>
            <asp:TemplateField  ><ItemTemplate><asp:ImageButton ID="imgvideo" runat="server" ImageUrl="~/Images/video.jpg" /></ItemTemplate>
       
           
            <HeaderStyle HorizontalAlign="Left" />
            <ItemStyle HorizontalAlign="Left" />
            <HeaderTemplate><asp:TextBox ID="txtvideoa" runat="server" Width="70px"></asp:TextBox>
            <asp:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender4" runat="server" TargetControlID="txtvideoa" WatermarkText="Video Address">
                </asp:TextBoxWatermarkExtender>
</HeaderTemplate>
            </asp:TemplateField>
            <asp:TemplateField  ><ItemTemplate><asp:ImageButton ID="imgpdf" runat="server" ImageUrl="~/Images/pdf-icon.png" /></ItemTemplate>
       
           
            <HeaderStyle HorizontalAlign="Left" />
            <ItemStyle HorizontalAlign="Left" />
            <HeaderTemplate><asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updFU">
                <ContentTemplate><asp:FileUpload ID="uploadpdf" runat="server" Width="70px"  /></ContentTemplate>
           </asp:UpdatePanel>
           
</HeaderTemplate>
            </asp:TemplateField>
             <asp:TemplateField  ItemStyle-HorizontalAlign="Center"><ItemTemplate><asp:LinkButton ID="lblstatus" runat="server" CommandName="editt"  CommandArgument='<%#Eval("status") +";" + Eval("topicid") %>' Text='<%#Eval("status") %>' ></asp:LinkButton></ItemTemplate>
            <ItemStyle HorizontalAlign="left" />
           
            </asp:TemplateField>
</Columns>
    <HeaderStyle BackColor="#61A6F8" Font-Bold="True" ForeColor="White" />
            <PagerStyle />
</asp:GridView>



No comments:

Post a Comment