2012-07-20 73 views
5

My QuestionFileUpload控制工作第二次点击,但不是第一次尝试保存发布的文件?

我设法回答自己,但是同一组功能有另一个问题。出于某种原因,发布文件的保存事件的第一次回发命中Ol'对象未设置为对象错误的实例,但是第二次尝试上载文件并发起保存事件(转换为byte []时,存储为SQL Server BLOB)它做的一切都应该做。

Same problem here

有使用AJAX AsyncUpload控制的一个很好的建议,但是我是去除病因和治疗没有问题的坚定信仰者。我将继续沿着这条路线,以最好的了解我的asp.net等

会有一个wizrd在你之间,可以帮助我确定为什么我得到“对象参考不设置为obj的inst”错误在第一次回发,但第二它工作正常。内容页面有一个母版页,它将内容页面包装在更新面板中。不是我决定这么做的。还有一个更新面板,其中包含针对我的保存事件的回发触发器。

你的想法是什么人?

回答

12

问题(如此处所示http://forums.asp.net/t/1060363.aspx)似乎是在周围面板上使用可见性属性(因为它似乎来自链接问题)。

建议的解决方法是使用CSS的可视性代替使用,使其无形 -

<asp:Panel ID="pnlUpload" runat="server" class="workerDetailsPanelLeft" style="display:none"> 

的解释为这起线程

如果你的容器被设置为不可见,上传控件实际上不是以HTML格式呈现的,导致表单的enctype不能设置为enctype =“multipart/form-data”,导致文件上传控件不会将所选文件发送回服务器。解决方法是要么确保FileUpload控件呈现为HTML(通过其样式设置为显示:在可见=假代替无),或通过手动设置ENCTYPE

所以另一个解决办法是改变您的表格标签到此

<form id="form1" enctype="multipart/form-data" runat="server"> 

我认为这些应该解决您的问题。

+1

非常好,我现在明白了。非常感谢您指出这一点。我明显忽略了它。 +1并回答:-) – dotnetnewb 2012-07-20 10:32:04

4

您可以通过Page_Load事件上的代码执行相同的操作。输入此代码即可解决问题。

Page.Form.Attributes.Add("enctype", "multipart/form-data"); 
相关问题