原意是在datalist编辑模式中进行上传图片,并更新显示,使用了updatepanel->datalist->editTemplate,使用Asyncfileupload控件上传图片并在其事件中更新editTemplate中图片的imageURL,但更新成功之后无法局部刷新,图片没办法更新显示,个人认为是编辑模式中的后台事件无法引起postback所致,只有象按钮点击编辑模式开启关闭才刷新吧。
之后,替代方案是将图片上传页面独立,用jquery动态预览上传图片,点击按钮后更新。独立是好,还能重用,当然随之而来的问题是页面跳转与参数传递的问题,真是车道山前必有路,山前有路蛋都疼啊。
在原页面获取条目名称作为图片名的一部分,通过链接ImageUpload?ImageName使用Request传递进上传页面,等图片上传,图片名由imageName加上当前时间(yyMMddHHmmss)构成,将每次上传的图片构建为ImageItem加入ImageList并加入ViewState["ImageList"]中保存,之后返回原页面时,将ViewState["ImageList"]加入Session中返回,原页面在提取后删除Session中对象。
对于在datalist中带图片上传总结:
出现问题:
asyncfileupload上传结束无法及时获得上传后预览。
页面跳转在后台用Sever.transfer只能指定页面无法搭载request参数。
只能在前台构建Url通过a href链接或者js window.location.href跳转。