FileUpload控件在第二次单击时工作但不首先尝试保存已发布的文件?

我的问题

我设法回答了自己,但是同样的function还有另外一个问题。 由于某种原因,发布文件的保存事件的第一次回发命中Ol’对象未设置为对象错误的实例,但是第二次尝试上载文件并触发我的保存事件(转换为byte []存储为SQL Server BLOB)它确实应该做的一切。

同样的问题在这里

有一个很好的建议使用AJAX AsyncUpload控件,但我坚信要消除原因而不是解决问题。 我将继续沿着这条路走下去,以便最好地了解asp.net等。

你们中间会有一个wizrd可以帮助我找出为什么我在第一次回发时得到“对象引用没有设置为obj的错误”但是第二次它工作正常。 内容页面具有主页面,其在更新面板中包装内容页面。 不是我决定这样做的。 还有一个更新面板,其中包含针对我的保存事件的回发触发器。

你有什么想法?

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

建议的解决方法是使用CSS可见性,因此使用它可以使其不可见 –

 

从线程的解释是

如果您的容器设置为不可见,则上传控件实际上不会呈现为HTML,导致表单的enctype不能设置为enctype =“multipart / form-data”,导致文件上载控件不将所选文件发布回服务器。 解决方法是确保将FileUpload控件呈现为HTML(通过将其样式设置为display:none而不是Visible = false),或者通过手动设置enctype

因此,另一种解决方法是将表单标记更改为此

 

我想其中任何一个都应该解决你的问题。

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

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