[英]how to reload the Jqgrid after upload the file by click upload Button?
当我通过单击上载按钮 上载文件时。 它应该重新加载我的jqgrid ,新值应该在网格的顶部,这是我的Task的一个场景。 我需要在Jquery中做哪些更改? 我使用loadonce = False,但它会连续加载网格。 如果重新加载整个页面,那么我将在网格中获得价值。
_initUploadedFilesGrid: function(optionsM, resData){
$('table#viewUploadedFiles').trigger("reloadGrid");
$("#tmp").data('options', optionsM);
$('#viewUploadedFilesDiv table#viewUploadedFiles').cb({
datatype: 'json'
,mtype: 'POST'
,url: optionsM.urls.getAllUploadedFiles
, jsonReader : {
root:"UploadedFiles",
}
,colNames: [
'Vendor Id'
,'Import ID'
,'Imported Organization'
,'Source Authoring Tool'
,'Import Start Time'
,'Import Completed Time'
,'Status'
,'File Name'
,'File Type'
,'Content Area'
,'Course'
,'Band'
]
,colModel: [
{name: 'VendorId'}
,{name: 'ImportFileId'}
,{name: 'organizationId'}
,{name: 'sourceAuthoringTool'}
,{name: 'importStartTime'}
,{name: 'importCompletedTime'}
,{name: 'status'}
,{name: 'fileName'}
,{name: 'fileType'}
,{name: 'contentAreaId'}
,{name: 'CourseId'}
,{name: 'BandId'}
]
,columnchoosercaption: optionsM.msgs.chooseColumns
,height: 'auto'
,width: 1150
,pager: '#viewUploadedFilesGridPager'
,sortname: 'qImportFileId'
,sortorder: "desc",
//,loadonce: false,
onSelectRow: function(rowId, status){
var $grid = $('#viewUploadedFiles table[id=viewUploadedFiles]');
var row = $grid.getRowData(rowId);
$.cete.contentEditor._itemStatusDialog(row.ImportFileId);
},
});
$('#viewUploadedFiles table#viewUploadedFiles').jqGrid('setGridWidth', $('#gridviewUploadedFilesContainer').width());
},
$('input:radio[name=gradeType]').click(function() {
var selected = $('input:radio[name=gradeType]:checked').val();
if (selected=="Course") {
$('#BandSettingDiv').hide();
$('#CourseSettingDiv').show();
$('#CourseId option').eq(0).attr("selected",true);
$('#BandId option').eq(0).attr("selected",true);
}
else{
$('#BandSettingDiv').show();
$('#CourseSettingDiv').hide();
$('#CourseId option').eq(0).attr("selected",true);
$('#BandId option').eq(0).attr("selected",true);
}
});
me._initUploadedFilesGrid(options, "");
},
尝试更改此代码...您说过,对话框右侧有一个上传按钮。 使用您的上载对话框ID代替此$(“#progressOfUpload”),它肯定会起作用!
$('input:radio[name=BandType]').click(function() {
var selected = $('input:radio[name=BandType]:checked').val();
if (selected=="gradeCourse") {
$('#BandSettingDiv').hide();
$('#CourseSettingDiv').sh
$('#CourseId option').eq(0).attr("selected",true);
$('#BandId option').eq(0).attr("selected",true);
}
else{
$('#BandSettingDiv').show();
$('#CourseSettingDiv').hide();
$('#CourseId option').eq(0).attr("selected",true);
$('#BandId option').eq(0).attr("selected",true);
}
});
$("#progressOfUpload").off('dialogclose').on('dialogclose', function(event) {
$('table#viewUploadedFiles').jqGrid('GridUnload');
me._initUploadedFilesGrid(options, "");
});
me._initUploadedFilesGrid(options, "");
},
您的代码似乎非常令人怀疑。 特别是选择器喜欢
$('table#viewUploadedFiles')
$('#viewUploadedFilesDiv table#viewUploadedFiles')
$('#viewUploadedFiles table[id=viewUploadedFiles]')
也怀疑使用未知方法.cb
,它们具有与.jqGrid
相同的选项。
我想您将创建ID重复的 HTML标记,这在HTML中是不允许的,并且可能会出现很多问题。 页面上id
属性的值必须唯一。
即使id
等于viewUploadedFiles
的<table>
是唯一的,您也绝对不应使用#viewUploadedFilesDiv table#viewUploadedFiles
或table[id=viewUploadedFiles]
类的选择器。 DOM API包含map(字典)对象,该对象允许通过id快速获取DOM元素。 有本机 DOM方法getElementById 。 如果您使用$("#viewUploadedFiles")
则该方法将由jQuery内部使用,并且执行将很快。 如果您使用其他选择器,例如table[id=viewUploadedFiles]
则执行将很慢,因为无法使用getElementById
。 像'#viewUploadedFilesDiv table#viewUploadedFiles'
这样的选择器也会很慢,因为jQuery首先会使用getElementById
制作$("#viewUploadedFilesDiv")
,然后在$("#viewUploadedFilesDiv")
上执行.find("table#viewUploadedFiles")
$("#viewUploadedFilesDiv")
。 它会使执行速度变慢,并且仅当您的HTML标记有错误并且您允许具有相同id =“ viewUploadedFiles”的多个元素时才应使用。 jqGrid代码在内部使用ID选择器和网格ID( $("#viewUploadedFilesDiv")
)。 因此,它不支持ID重复的<table>
用法。 结果,可以重新加载另一个网格,并且可以递归地重新加载父网格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.