You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			103 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											11 years ago
										 | /** | ||
|  |  * By default DataTables only uses the sAjaxSource variable at initialisation | ||
|  |  * time, however it can be useful to re-read an Ajax source and have the table | ||
|  |  * update. Typically you would need to use the `fnClearTable()` and | ||
|  |  * `fnAddData()` functions, however this wraps it all up in a single function | ||
|  |  * call. | ||
|  |  * | ||
|  |  * DataTables 1.10 provides the `dt-api ajax.url()` and `dt-api ajax.reload()` | ||
|  |  * methods, built-in, to give the same functionality as this plug-in. As such | ||
|  |  * this method is marked deprecated, but is available for use with legacy | ||
|  |  * version of DataTables. Please use the new API if you are used DataTables 1.10 | ||
|  |  * or newer. | ||
|  |  * | ||
|  |  *  @name fnReloadAjax | ||
|  |  *  @summary Reload the table's data from the Ajax source | ||
|  |  *  @author [Allan Jardine](http://sprymedia.co.uk)
 | ||
|  |  *  @deprecated | ||
|  |  * | ||
|  |  *  @param {string} [sNewSource] URL to get the data from. If not give, the | ||
|  |  *    previously used URL is used. | ||
|  |  *  @param {function} [fnCallback] Callback that is executed when the table has | ||
|  |  *    redrawn with the new data | ||
|  |  *  @param {boolean} [bStandingRedraw=false] Standing redraw (don't changing the | ||
|  |  *      paging) | ||
|  |  * | ||
|  |  *  @example | ||
|  |  *    var table = $('#example').dataTable(); | ||
|  |  *     | ||
|  |  *    // Example call to load a new file
 | ||
|  |  *    table.fnReloadAjax( 'media/examples_support/json_source2.txt' ); | ||
|  |  * | ||
|  |  *    // Example call to reload from original file
 | ||
|  |  *    table.fnReloadAjax(); | ||
|  |  */ | ||
|  | 
 | ||
|  | jQuery.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw ) | ||
|  | { | ||
|  | 	// DataTables 1.10 compatibility - if 1.10 then `versionCheck` exists.
 | ||
|  | 	// 1.10's API has ajax reloading built in, so we use those abilities
 | ||
|  | 	// directly.
 | ||
|  | 	if ( jQuery.fn.dataTable.versionCheck ) { | ||
|  | 		var api = new jQuery.fn.dataTable.Api( oSettings ); | ||
|  | 
 | ||
|  | 		if ( sNewSource ) { | ||
|  | 			api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw ); | ||
|  | 		} | ||
|  | 		else { | ||
|  | 			api.ajax.reload( fnCallback, !bStandingRedraw ); | ||
|  | 		} | ||
|  | 		return; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	if ( sNewSource !== undefined && sNewSource !== null ) { | ||
|  | 		oSettings.sAjaxSource = sNewSource; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// Server-side processing should just call fnDraw
 | ||
|  | 	if ( oSettings.oFeatures.bServerSide ) { | ||
|  | 		this.fnDraw(); | ||
|  | 		return; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	this.oApi._fnProcessingDisplay( oSettings, true ); | ||
|  | 	var that = this; | ||
|  | 	var iStart = oSettings._iDisplayStart; | ||
|  | 	var aData = []; | ||
|  | 
 | ||
|  | 	this.oApi._fnServerParams( oSettings, aData ); | ||
|  | 
 | ||
|  | 	oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) { | ||
|  | 		/* Clear the old information from the table */ | ||
|  | 		that.oApi._fnClearTable( oSettings ); | ||
|  | 
 | ||
|  | 		/* Got the data - add it to the table */ | ||
|  | 		var aData =  (oSettings.sAjaxDataProp !== "") ? | ||
|  | 			that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json; | ||
|  | 
 | ||
|  | 		for ( var i=0 ; i<aData.length ; i++ ) | ||
|  | 		{ | ||
|  | 			that.oApi._fnAddData( oSettings, aData[i] ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		oSettings.aiDisplay = oSettings.aiDisplayMaster.slice(); | ||
|  | 
 | ||
|  | 		that.fnDraw(); | ||
|  | 
 | ||
|  | 		if ( bStandingRedraw === true ) | ||
|  | 		{ | ||
|  | 			oSettings._iDisplayStart = iStart; | ||
|  | 			that.oApi._fnCalculateEnd( oSettings ); | ||
|  | 			that.fnDraw( false ); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		that.oApi._fnProcessingDisplay( oSettings, false ); | ||
|  | 
 | ||
|  | 		/* Callback user function - for event handlers etc */ | ||
|  | 		if ( typeof fnCallback == 'function' && fnCallback !== null ) | ||
|  | 		{ | ||
|  | 			fnCallback( oSettings ); | ||
|  | 		} | ||
|  | 	}, oSettings ); | ||
|  | }; |