DWZ(J-UI)selectedToDo操作完成后刷新Tab

本文详细探讨了在DWZ(J-UI)框架中,如何在执行selectedToDo操作后实现Tab的刷新。关键在于理解并利用dwz.database.js中的相关代码逻辑,这对于优化用户界面交互和提升应用性能至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键代码在dwz.database.js中:

selectedTodo: function(){
			
			function _getIds(selectedIds, targetType){
				var ids = "";
				var $box = targetType == "dialog" ? $.pdialog.getCurrent() : navTab.getCurrentPanel();
				$box.find("input:checked").filter("[name='"+selectedIds+"']").each(function(i){
					var val = $(this).val();
					ids += i==0 ? val : ","+val;
				});
				return ids;
			}
			return this.each(function(){
				var $this = $(this);
				var selectedIds = $this.attr("rel") || "ids";
				var postType = $this.attr("postType") || "map";

				$this.click(function(){
					var targetType = $this.attr("targetType");
					var ids = _getIds(selectedIds, targetType);
					if (!ids) {
						alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg"));
						return false;
					}
					
					var _callback = $this.attr("callback") || (targetType == "dialog" ? dialogAjaxDone : navTabAjaxDone);
					if (! $.isFunction(_callback)) _callback = eval('(' + _callback + ')');
					
					function _doPost(){
						$.ajax({
							type:'POST', url:$this.attr('href'), dataType:'json', cache: false,
							data: function(){
								if (postType == 'map'){
									return $.map(ids.split(','), function(val, i) {
										return {name: selectedIds, value: val};
									})
								} else {
									var _data = {};
									_data[selectedIds] = ids;
									return _data;
								}
							}(),
							success: _callback,
							error: DWZ.ajaxError
						});
					}
					var title = $this.attr("title");
					if (title) {
						alertMsg.confirm(title, {okCall: _doPost});
					} else {
						_doPost();
					}
					return false;
				});
				
			});
		}
	});

根据代码
var _callback = $this.attr("callback") || (targetType == "dialog" ? dialogAjaxDone : navTabAjaxDone);

var targetType = $this.attr("targetType");

以及
function _doPost(){
  $.ajax({
 <span style="white-space:pre">	</span>type:'POST', url:$this.attr('href'), dataType:'json', cache: false,
	data: function(){
	if (postType == 'map'){
	  return $.map(ids.split(','), function(val, i) {
		return {name: selectedIds, value: val};
		})
	} else {
	  var _data = {};
	  _data[selectedIds] = ids;
	  return _data;
	}
	}(),
	success: _callback,
	error: DWZ.ajaxError
  });
}			
看出,只要在连接中加入targetType="dialog"就会执行dialogAjaxDone方法,当targetType属性不为dialog时,就会调用navTabAjaxDone方法,这样就实现了刷新navTab的方法
<a title="确实要删除这些记录吗?" target="selectedTodo" rel="ids[]" href="__URL__/dels/navTabId/qa"  targetType="navTab" class="delete"><span>批量删除</span></a>
或者直接将<a>属性中的callback设置为callback="navTabAjaxDone"调用navTabAjaxDone方法来刷新当前tab

<a title="确实要删除这些记录吗?" target="selectedTodo" rel="ids[]" href="__URL__/dels/navTabId/qa"  callback="navTabAjaxDone" class="delete"><span>批量删除</span></a>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值