asp.net – 文件上传控件HasFile始终为false,name始终为Empty String,不使用更新面板
发布时间:2020-05-23 22:53:58 所属栏目:asp.Net 来源:互联网
导读:我有一个详细信息视图,其中包含文件上载字段.当我填写信息并上传文件(我已经尝试了9k到6.8MB的多个文件)时,所有信息(文本字段)提交都很好,但是当我检查HasFile时,上传的文件总是返回false检查文件名时返回String.Empty. 难道我做错了什么?详细信息视图位于Pa
|
我有一个详细信息视图,其中包含文件上载字段.当我填写信息并上传文件(我已经尝试了9k到6.8MB的多个文件)时,所有信息(文本字段)提交都很好,但是当我检查HasFile时,上传的文件总是返回false检查文件名时返回String.Empty. 难道我做错了什么?详细信息视图位于Panel而非Update Panel中 <asp:Panel ID="pnlUpdate" runat="server"
Visible="false">
<h4 runat="server" id="h2SubCaption">Person Details</h4>
<asp:DetailsView ID="dvAssignment"
runat="server"
AutoGenerateRows="false"
Width="100%"
SkinID="SampleDetailsView"
CssSelectorClass="PrettyDetailsView"
DataKeyNames="guidMemberId"
DefaultMode="Edit"
OnItemUpdating="dvAssignment_ItemUpdating"
OnModeChanging="dvAssignment_ModeChanging"
AutoGenerateEditButton="True" >
<Fields>
<asp:TemplateField HeaderText="Nomination Letter">
<EditItemTemplate>
<asp:FileUpload runat="server" ID="fileuploadNomination" />
</EditItemTemplate>
</asp:TemplateField> .....
代码背后: FileUpload _nomination = (FileUpload)dv.FindControl("fileuploadNomination");
byte[] nominationByte = null;
if (_nomination.FileName != string.Empty)
nominationByte = _nomination.FileBytes;
//if(_nomination.HasFile)
//nominationByte = _nomination.FileBytes;
编辑 编辑#2我现在已经在DetailsView周围放置了一个更新面板并将回发触发器设置为DetailsView(见下文)并且它仍然无法正常工作,它似乎在提交之前清除了上传控件. <asp:UpdatePanel ID="updatePnl" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnlUpdate" runat="server"
Visible="false">
<h4 runat="server" id="h2SubCaption">Person Details</h4>
<asp:DetailsView ID="dvAssignment"
runat="server"
AutoGenerateRows="false"
Width="100%"
SkinID="SampleDetailsView"
CssSelectorClass="PrettyDetailsView"
DataKeyNames="guidMemberId"
DefaultMode="Edit"
OnItemUpdating="dvAssignment_ItemUpdating"
OnModeChanging="dvAssignment_ModeChanging"
AutoGenerateEditButton="True" >
<FieldHeaderStyle Font-Bold="True" Width="150px" />
<Fields>
<asp:FileUpload runat="server" ID="fileuploadNomination" />
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView >
</asp:Panel>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="dvAssignment" />
</Triggers>
</asp:UpdatePanel>
Gridview代码按要求 <asp:GridView ID="gvQuality"
runat="server"
AutoGenerateColumns="False"
Width="100%"
DataKeyNames="guidMemberId"
CssSelectorClass="PrettyGridView"
SkinID="SampleGridView"
OnSelectedIndexChanged="gvQuality_SelectedIndexChanged"
onrowdatabound="gvQuality_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnViewDetails" runat="server" Text="Edit" CommandName="Select" />
</ItemTemplate>
</asp:TemplateField>
一些绑定字段在此之后(名字,姓氏等) protected void gvQuality_SelectedIndexChanged(object sender,EventArgs e)
{
Guid guidMemberId = (Guid)gvQuality.SelectedDataKey.Values["guidMemberId"];
PortalDataContext db = new PortalDataContext(AuthenticatedUser.ConnectionString);
h2SubCaption.InnerText = "Update Person";
dvAssignment.ChangeMode(DetailsViewMode.Edit);
dvAssignment.DataSource = LINQ Query Here
dvAssignment.DataBind();
}
解决方法大家好,感谢所有的帮助,但我明白了.我必须设置Page.Form.Enctype =“multipart / form-data.这是它的代码! protected void Page_Load(object sender,EventArgs e)
{
this.Page.Form.Enctype = "multipart/form-data";
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-4 – 如何解决错误“安全透明方法尝试”System
- asp.net-mvc – Accord.NET比较两个图像以确定相似性
- asp.net-mvc – Mvc3 Antiforgery令牌多标签
- asp.net-mvc-3 – MVC:为此对象定义的无参数构造函数
- 在ASP.NET登录控件页面加载上设置焦点到文本框
- 在asp.net中使用太多会话的缺点
- asp.net-mvc – 在Azure Active Directory B2C中按组授权
- 如何在ASP.NET中实现实时更新
- asp.net – 在Web API中获取匹配的路由名称
- asp.net-mvc – ASP.NET MVC – 如何从不同的控制器维护Mod
推荐文章
站长推荐
- asp.net-mvc-3 – 在动作过滤器中获取动作参数的
- asp.net-mvc – 获取错误“视图at’/ Views / Pa
- asp.net-mvc – 导出Excel文件以查看(MVC)
- asp.net-mvc – ASP.NET MVC:访问集合中项目的M
- asp.net – 无法加载类型’system.data.entity.d
- asp.net-mvc – asp.net mvc未经授权的回复是空白
- asp.net – 在.net应用程序中使用jquery禁用回发
- ADO.NET 2.0 Dataset和Datatable 新功能新特性
- ASP.NET C#中的自定义控件
- 如何保护经典ASP ASPSESSIONID cookie?
热点阅读
