.net实现ajax弹出层并实现文件上传 已有 748 次阅读 2009-12-25 10:02 首先,弹出层可使用ajax扩展控件中的ModalPopupExtender控件实现,他的常用属性如下: TargetControlID:用于触发弹出面板的控件。 PopupControlID:对应的弹出层的panel。
OkControlID:弹出面板中的确认按钮,用于确认新的弹出面板。 OnOkScript:当单击确认按钮后,关闭样式面板后,执行的脚本。 CancelControlID:弹出面板中的取消按钮,用于取消弹出面板。 PopupDragHandleControlID:弹出面板中用于触发拖动面板的控件。 drag:是否可以被拖动
DropShadow:样式面板是否有阴影。值为True,则有阴影;值为False,则没有阴影。 BackgroundCssClass:样式面板中应用的css样式。
TargetControlID设置触发弹出的按钮,为无刷新弹出。若设置弹出按钮为隐藏按钮,通过后台代码控制弹出,则无法实现无刷新弹出,可把其放入updatePanel中解决这一问题。 其中PopupControlID指定的弹出层要设置为默认不显示,否则可能出现页面加载时弹出层先显示后消失的效果。
PopupDragHandleControlID可设置为弹出层id,这样既可点击弹出层的任意部分拖动弹出层。
BackgroundCssClass设置背景层样式,设置其样式为遮盖层样式既可,不设既为无遮盖层。 要在js中获得ModalPopupExtender对象,可设置BehaviorID,然后通过$find()方法获得,如:
)\" ondblclick=\"$find('modalPopup').hide();\"> 该代码实现双击关闭弹出层。
ModalPopupExtender的自带拖动功能有些问题,可用js或ajax控件解决。 js拖动层的方法:
实现拖动也可使用ajax扩展控件DragPanel, DragHandleID设置用于出发拖动面板的控件,TargetControlID设置被拖动的控件即弹出层。
关于updatePanel中放置fileupload控件的,由于fileupload必须通过form形式提交,与ajax提交有冲突,因此uploadfile控件放在updatePanel中FileUpload.HasFile一直是false。解决这一问题可有2种方法。一是把fileUpload控件放在另一页面中,在主页面里用iframe导入,代码如下:
另一个方法是把上传按钮设置为同步,即设置updatePanel的trigger属性,代码如下:
也可通过后台代码设置:ScriptManager1.RegisterPostBackControl(btnUpLoad);