Quantcast
Channel: ASP.NET AJAX + Ajax Control Toolkit (ACT)
Viewing all articles
Browse latest Browse all 5678

FileUpload Inside of Gridview Which Is Inside of UpdatePanel

$
0
0

I have read a ton of articles on how to fix the issue of having a fileupload inside of an updatepanel.

Basically the reasoning is that having the fileupload control inside of an update panel is a security issue.  And to get around it

you need to wrap a triggers <TRIGGERS> tag with a button control to do a post back for the file upload control.  However,

this does not work for me because I have a gridview inside of my update panel.  I tried to put a triggers tag inside of the update panel

but it complained that it could not find a control with ID btnUpload.  I think it is because the button is inside of my gridview which is inside of my update panel.

My issue is basically that fileupload control returns false, and I read that it is because it needs to post back.  

Can anyone help me out?

Here is my gridview code:

 <pre>

 

<asp:UpdatePanelID="myPanel"runat="server">

 

<ContentTemplate>

 

<asp:GridViewCellPadding="3"Font-Size="X-Small"DataKeyNames="ID"Width="100%"GridLines="both"AlternatingRowStyle-BackColor="#F0F8FF"BackColor="#E8E8E8"HeaderStyle-BackColor="#377CB1"ID="gvLineItems"runat="server"AllowSorting="True"AutoGenerateColumns="False"OnSelectedIndexChanged="gvLineItems_SelectedIndexChanged">

 

<Columns>

 

 

<asp:TemplateFieldHeaderText="ID"SortExpression="ID"Visible="False">

 

<ItemTemplate>

 

<asp:LabelID="lblExpenseReportLineItemID"runat="server"Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'></asp:Label>

 

</ItemTemplate>

 

</asp:TemplateField>

 

 

<asp:TemplateField>

 

<HeaderTemplate>

 

<asp:CheckBoxID="HeaderLevelCheckBox"runat="server"/>

 

</HeaderTemplate>

 

<ItemTemplate>

 

<asp:CheckBoxID="chkSelector"runat="server"onclick="ChangeRowColor(this)"/>

 

</ItemTemplate>

 

<ItemStyleHorizontalAlign="Center"Width="1%"/>

 

<HeaderStyleHorizontalAlign="Center"/>

 

 

 

</asp:TemplateField><asp:TemplateField>

 

<ItemTemplate>

 

<asp:ImageButtonID="ibAddLineItem"runat="server"ImageUrl="images/InsertRow.gif"CommandName="Insert"ToolTip="Insert new row"/>

 

</ItemTemplate>

 

<ItemStyleWidth="1%"/>

 

</asp:TemplateField>

 

 

<asp:TemplateField>

 

<ItemTemplate>

 

 

<asp:ImageButtonID="ibDelete"runat="server"CommandName="DeleteRow"ImageUrl="images/d.gif"

 

ToolTip="Delete Line Item?"/>

 

 

</ItemTemplate>

 

</asp:TemplateField>

 

 

<asp:TemplateFieldHeaderText="Date"SortExpression="Date">

 

<ItemTemplate>

 

<ajaxToolkit:CalendarExtenderTargetControlID="txtLineItemDate"ID="CalendarExtender3"runat="server">

 

</ajaxToolkit:CalendarExtender>

 

<asp:TextBoxWidth="60px"ID="txtLineItemDate"runat="server"Text='<%# DataBinder.Eval(Container, "DataItem.LineItemDate") %>'>

 

</asp:TextBox>

 

</ItemTemplate>

 

<ItemStyleHorizontalAlign="Center"Width="10%"/>

 

<HeaderStyleForeColor="White"HorizontalAlign="Center"Width="12%"/>

 

 

 

</asp:TemplateField><asp:TemplateFieldHeaderText="Reason"SortExpression="Reason">

 

<ItemTemplate>

 

<asp:DropDownListWidth="100px"ID="ddlExpenseTypes"DataSource='<%# GetExpenseTypes() %>'SelectedValue='<%# Bind("ExpenseReasonID") %>'DataTextField="ExpenseReasonID"DataValueField="ExpenseReasonID"runat="server"></asp:DropDownList>

 

</ItemTemplate>

 

<ItemStyleHorizontalAlign="Center"Width="50%"/>

 

 

 

</asp:TemplateField><asp:TemplateFieldHeaderText="Receipt"SortExpression="Date">

 

<ItemTemplate>

 

<asp:CheckBoxID="cbReceipt"runat="server"Checked='<%# DataBinder.Eval(Container, "DataItem.HasReceipt") %>'/>

 

</ItemTemplate>

 

<HeaderStyleForeColor="White"/>

 

<ItemStyleHorizontalAlign="Center"Width="1%"/>

 

 

 

</asp:TemplateField><asp:TemplateFieldHeaderText="Amount"SortExpression="Amount">

 

<ItemTemplate>

 

<asp:TextBoxWidth="40px"ID="txtAmount"runat="server"Text='<%# DataBinder.Eval(Container, "DataItem.AmountSpent") %>'/>

 

</ItemTemplate>

 

<ItemStyleWidth="1%"/>

 

</asp:TemplateField>

 

 

<asp:TemplateFieldHeaderText="Currency"SortExpression="Currency">

 

<ItemTemplate>

 

<asp:DropDownListID="ddlCurrency"OnSelectedIndexChanged="ddlCurrency_SelectedIndexChanged"runat="server"AutoPostBack="true"DataSource='<%# GetCurrency() %>'SelectedValue='<%# Bind("CountryID") %>'DataTextField="CountryID"DataValueField="CountryID"></asp:DropDownList>

 

</ItemTemplate>

 

<ItemStyleHorizontalAlign="Center"Width="50%"/>

 

 

 

</asp:TemplateField><asp:TemplateFieldHeaderText="Rate"SortExpression="Rate">

 

<ItemTemplate>

 

 

<asp:TextBoxWidth="40px"ID="txtRate"runat="server"Text='<%# DataBinder.Eval(Container, "DataItem.Rate") %>'/></ItemTemplate>

 

<ItemStyleWidth="1%"/>

 

</asp:TemplateField>

 

 

<asp:TemplateFieldHeaderText="USD"SortExpression="USD">

 

<ItemTemplate>

 

 

<asp:LabelID="lblUSD"runat="server"Text='<%# DataBinder.Eval(Container, "DataItem.AmountBackInUSD") %>'/></ItemTemplate>

 

<ItemStyleWidth="1%"/>

 

</asp:TemplateField>

 

 

<asp:TemplateFieldHeaderText="Desc."SortExpression="Desc.">

 

<ItemTemplate>

 

 

<asp:TextBoxWidth="100px"Font-Names="Arial"ID="txtExpenseReasonDescription"runat="server"Text='<%# DataBinder.Eval(Container, "DataItem.ExpenseReasonDescription") %>'/></ItemTemplate>

 

<ItemStyleWidth="1%"HorizontalAlign="Left"/>

 

</asp:TemplateField>

 

 

 

<asp:HyperLinkFieldHeaderText="Link"SortExpression="Link"DataNavigateUrlFields="AttachmentLink"DataNavigateUrlFormatString="{0}"

 

DataTextField="AttachmentLink"DataTextFormatString="Link"Target="_blank">

 

<ControlStyleForeColor="Navy"/>

 

<HeaderStyleForeColor="White"/>

 

</asp:HyperLinkField>

 

 

<asp:TemplateFieldHeaderText="Upload File?"SortExpression="ID">

 

<ItemTemplate>

 

<asp:FileUploadWidth="100px"ID="fuAttachment"runat="server"/>

 

<asp:ButtonID="btnUpload"runat="server"Text="Upload"/>

 

</ItemTemplate>

 

<HeaderStyleForeColor="White"/>

 

</asp:TemplateField>

 

</Columns>

 

<HeaderStyleBackColor="#377CB1"/>

 

<AlternatingRowStyleBackColor="AliceBlue"/>

 

</asp:GridView>

 

<divstyle="width:100%">

 

<asp:LabelID="lblMessage2"runat="server"></asp:Label>

 

</div>

 

<divstyle="width:100%; text-align:right;">

 

<tablewidth="100%"cellpadding="0"cellspacing="0">

 

<tr>

 

<tdclass="tableFields">

 

&nbsp;</td>

 

<td>

 

<asp:PanelID="pGridControls"runat="server"Width="100%"Visible="False">

 

<asp:LabelID="Label2"runat="server"Text="Any changes must be followed by a <u>save</u>!"BackColor="#FFFF80"Font-Bold="True"ForeColor="#377CB1"></asp:Label>

 

<asp:ImageButtonID="ibSaveGrid"runat="server"ImageUrl="images/smallSave.gif"ToolTip="Save / refresh changes?"CausesValidation="False"OnClick="ibSaveGrid_Click"/><asp:ImageButtonID="ibDeleteGrid"runat="server"ImageUrl="images/smallDelete.gif"ToolTip="Delete checked rows?"CausesValidation="False"OnClick="ibDeleteGrid_Click"/></asp:Panel>

 

</td>

 

</tr>

 

</table>

 

</div>

 

</ContentTemplate>

 

 

 

 

 

<Triggers><asp:PostBackTriggerControlID="btnUpload"/></Triggers></asp:UpdatePanel>

</pre>

Notice the triggers tag...when I load the page it automatically gives me an error saying btnUpload control not found!

 


Viewing all articles
Browse latest Browse all 5678

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>