📄 showlist.js.svn-base
字号:
if(att)returnArray[returnArray.length] = allElements[no];
}
else
if(att==attributeValue)returnArray[returnArray.length] = allElements[no];
}
return returnArray;
}
}
DHTMLSuite.tableWidgetPageHandler = function()
{
var tableRef; // Reference to object of class DHTMLSuite.tableWidget
var targetRef; // Where to insert the pagination.
var txtPrevious; // Label - "Previous"
var txtNext; // Label - "Next"
var txtFirst; // Label - "First"
var txtLast; // Label - "last"
var txtResultPrefix; // Prefix:result - default = "Result: "
var txtResultTo; // Text label Result: 1 "to" 10 of 51 - default value = "to"
var txtResultOf; // Text label Result: 1 to 10 "of" 51 - default value = "of"
var totalNumberOfRows; // Total number of rows in dataset
var rowsPerPage; // Number of rows per page.
var layoutCSS; // Name of CSS file for the table widget.
var activePageNumber; // Active page number
var mainDivElement; // Reference to main div for the page handler
var resultDivElement; // Reference to div element which is parent for the result
var pageListDivElement; // Reference to div element which is parent to pages [1],[2],[3]...[Next]
var objectIndex; // Index of this widget in the arrayOfDhtmlSuiteObjects array
var linkPagePrefix; // Text in front of each page link
var linkPageSuffix; // Text behind each page link
var maximumNumberOfPageLinks; // Maximum number of page links.
var callbackOnAfterNavigate; // Callback function - executed when someone navigates to a different page
this.txtPrevious = 'Previous'; // Default label
this.txtNext = 'Next'; // Default label
this.txtResultPrefix = 'Result: '; // Default label
this.txtResultTo = 'to'; // Default label
this.txtResultOf = 'of'; // Default label
this.txtFirst = 'First';
this.txtLast = 'Last';
this.tableRef = false;
this.targetRef = false;
this.totalNumberOfRows = false;
this.activePageNumber = 1;
this.layoutCSS = 'table-widget-page-handler.css';
this.linkPagePrefix = '';
this.linkPageSuffix = '';
this.maximumNumberOfPageLinks = false;
this.callbackOnAfterNavigate = false;
this.objectIndex = DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects.length;
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[this.objectIndex] = this;
}
DHTMLSuite.tableWidgetPageHandler.prototype = {
setTableRef:function(tableRef)
{
this.tableRef = tableRef;
this.tableRef.setPageHandler(this);
}
,
setTargetId:function(idOfHTMLElement)
{
if(!document.getElementById(idOfHTMLElement)){
alert('ERROR IN tableWidgetPageHandler.setTargetId:\nElement with id ' + idOfHTMLElement + ' does not exists');
return;
}
this.targetRef = document.getElementById(idOfHTMLElement);
}
,
setTxtPrevious:function(newText)
{
this.txtPrevious = newText;
}
,
setLinkPagePrefix:function(linkPagePrefix)
{
this.linkPagePrefix = linkPagePrefix;
}
,
setLinkPageSuffix:function(linkPageSuffix)
{
this.linkPageSuffix = linkPageSuffix;
}
,
setTxtNext:function(newText)
{
this.txtNext = newText;
}
,
setTxtResultOf:function(txtResultOf)
{
this.txtResultOf = txtResultOf;
}
,
setTxtResultTo:function(txtResultTo)
{
this.txtResultTo = txtResultTo;
}
,
setTxtResultPrefix:function(txtResultPrefix)
{
this.txtResultPrefix = txtResultPrefix;
}
,
setTxtFirstPage:function(txtFirst)
{
this.txtFirst = txtFirst;
}
,
setTxtLastPage:function(txtLast)
{
this.txtLast = txtLast;
}
,
setTotalNumberOfRows:function(totalNumberOfRows)
{
this.totalNumberOfRows = totalNumberOfRows;
}
,
setCallbackOnAfterNavigate:function(callbackOnAfterNavigate)
{
this.callbackOnAfterNavigate = callbackOnAfterNavigate;
}
,
setLayoutCss:function(layoutCSS)
{
this.layoutCSS = layoutCSS;
}
,
setMaximumNumberOfPageLinks:function(maximumNumberOfPageLinks)
{
this.maximumNumberOfPageLinks = maximumNumberOfPageLinks;
}
,
init:function()
{
this.rowsPerPage = this.tableRef.getServersideSortNumberOfRows();
DHTMLSuite.commonObj.loadCSS(this.layoutCSS);
this.__createMainDivElements();
this.setHTMLOfResultList();
this.__createPageLinks();
}
,
__createMainDivElements:function()
{
if(!this.targetRef){
alert('Error creating table widget page handler. Remember to specify targetRef');
return;
}
this.mainDivElement = document.createElement('DIV');
this.mainDivElement.className = 'DHTMLSuite_tableWidgetPageHandler_mainDiv';
this.targetRef.appendChild(this.mainDivElement);
this.resultDivElement = document.createElement('DIV');
this.resultDivElement.className = 'DHTMLSuite_tableWidgetPageHandler_result';
this.mainDivElement.appendChild(this.resultDivElement);
this.pageListDivElement = document.createElement('DIV');
this.pageListDivElement.className = 'DHTMLSuite_tableWidgetPageHandler_pageList';
this.mainDivElement.appendChild(this.pageListDivElement);
}
,
setHTMLOfResultList:function()
{
this.resultDivElement.innerHTML = '';
var html = this.txtResultPrefix + (((this.activePageNumber-1) * this.rowsPerPage) + 1) + ' ' + this.txtResultTo + ' ' + Math.min(this.totalNumberOfRows,(this.activePageNumber * this.rowsPerPage)) + ' ' + this.txtResultOf + ' ' + this.totalNumberOfRows;
this.resultDivElement.innerHTML = html;
}
,
__createPageLinks:function()
{
var ind = this.objectIndex;
this.pageListDivElement.innerHTML = ''; // Clearing the div element if it allready got content.
var numberOfPages = Math.ceil(this.totalNumberOfRows/this.rowsPerPage);
if(this.maximumNumberOfPageLinks && this.maximumNumberOfPageLinks<numberOfPages){
var span = document.createElement('SPAN');
span.innerHTML = this.linkPagePrefix;
this.pageListDivElement.appendChild(span);
span.className = 'DHTMLSuite_pageHandler_firstLink';
var firstLink = document.createElement('A'); // "first" link
firstLink.innerHTML = this.txtFirst;
firstLink.href = '#';
firstLink.id = 'pageLink_1';
firstLink.onclick = function(e){ return DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[ind].__navigate(e); }
span.appendChild(firstLink);
DHTMLSuite.commonObj.__addEventElement(firstLink);
}
var span = document.createElement('SPAN');
span.innerHTML = this.linkPagePrefix;
this.pageListDivElement.appendChild(span);
span.className = 'DHTMLSuite_pageHandler_previousLink';
var previousLink = document.createElement('A'); // "Previous" link
previousLink.innerHTML = this.txtPrevious;
previousLink.href = '#';
previousLink.id = 'previous';
previousLink.onclick = function(e){ return DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[ind].__navigate(e); }
span.appendChild(previousLink);
DHTMLSuite.commonObj.__addEventElement(previousLink);
if(this.activePageNumber==1)previousLink.className = 'previousLinkDisabled'; else previousLink.className = 'previousLink';
var startNumberToShow = 1;
var endNumberToShow = numberOfPages;
if(this.maximumNumberOfPageLinks && this.maximumNumberOfPageLinks<numberOfPages){
startNumberToShow = Math.max(1,Math.round(this.activePageNumber - this.maximumNumberOfPageLinks/2));
endNumberToShow = Math.min(numberOfPages,startNumberToShow + this.maximumNumberOfPageLinks - 1);
if(endNumberToShow-startNumberToShow < this.maximumNumberOfPageLinks){
startNumberToShow = Math.max(1,endNumberToShow - this.maximumNumberOfPageLinks + 1);
}
}
for(var no=startNumberToShow;no<=endNumberToShow;no++){
var span = document.createElement('SPAN');
span.innerHTML = this.linkPagePrefix;
this.pageListDivElement.appendChild(span);
var pageLink = document.createElement('A');
if(no==this.activePageNumber)pageLink.className='DHTMLSuite_tableWidgetPageHandler_activePage'; else pageLink.className = 'DHTMLSuite_tableWidgetPageHandler_inactivePage';
pageLink.innerHTML = no;
pageLink.href= '#';
pageLink.id = 'pageLink_' + no;
pageLink.onclick = function(e){ return DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[ind].__navigate(e); }
DHTMLSuite.commonObj.__addEventElement(pageLink);
this.pageListDivElement.appendChild(pageLink);
var span = document.createElement('SPAN');
span.innerHTML = this.linkPageSuffix;
this.pageListDivElement.appendChild(span);
}
var span = document.createElement('SPAN');
span.innerHTML = this.linkPagePrefix;
this.pageListDivElement.appendChild(span);
span.className = 'DHTMLSuite_pageHandler_nextLink';
var nextLink = document.createElement('A'); // "Next" link
nextLink.innerHTML = this.txtNext;
nextLink.id = 'next';
nextLink.href = '#';
nextLink.onclick = function(e){ return DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[ind].__navigate(e); }
DHTMLSuite.commonObj.__addEventElement(nextLink);
span.appendChild(nextLink);
if(this.activePageNumber==numberOfPages)nextLink.className = 'nextLinkDisabled'; else nextLink.className = 'nextLink';
if(this.maximumNumberOfPageLinks && this.maximumNumberOfPageLinks<numberOfPages){
var span = document.createElement('SPAN');
span.innerHTML = this.linkPagePrefix;
this.pageListDivElement.appendChild(span);
span.className = 'DHTMLSuite_pageHandler_lastLink';
var lastLink = document.createElement('A'); // "Last" link
lastLink.innerHTML = this.txtLast;
lastLink.href = '#';
lastLink.id = 'pageLink_' + (numberOfPages);
lastLink.onclick = function(e){ return DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[ind].__navigate(e); }
span.appendChild(lastLink);
DHTMLSuite.commonObj.__addEventElement(lastLink);
}
}
,
__navigate:function(e)
{
if(document.all)e = event;
var src = DHTMLSuite.commonObj.getSrcElement(e);
var initActivePageNumber = this.activePageNumber;
var numberOfPages = Math.ceil(this.totalNumberOfRows/this.rowsPerPage);
if(src.id.indexOf('pageLink_')>=0){
var pageNo = src.id.replace(/[^0-9]/gi,'')/1;
this.activePageNumber = pageNo;
}
if(src.id=='next'){ // next link clicked
this.activePageNumber++;
if(this.activePageNumber>numberOfPages)this.activePageNumber = numberOfPages;
}
if(src.id=='previous'){
this.activePageNumber--;
if(this.activePageNumber<1)this.activePageNumber=1;
}
if(this.activePageNumber!=initActivePageNumber){
this.tableRef.serversideSortCurrentStartIndex = ((this.activePageNumber-1)*this.rowsPerPage);
this.tableRef.__getItemsFromServer(this.callbackOnAfterNavigate);
this.setHTMLOfResultList();
this.__createPageLinks();
}
return false;
}
,
__resetActivePageNumber:function()
{
this.activePageNumber = 1;
this.setHTMLOfResultList();
this.__createPageLinks();
}
}
DHTMLSuite.tableWidget = function()
{
var tableWidget_okToSort; // Variable indicating if it's ok to sort. This variable is "false" when sorting is in progress
var activeColumn; // Reference to active column, i.e. column currently beeing sorted
var idOfTable; // Id of table, i.e. the <table> tag
var tableObj; // Reference to <table> tag.
var widthOfTable; // Width of table (Used in the CSS)
var heightOfTable; // Height of table (Used in the CSS)
var columnSortArray; // Array of how table columns should be sorted
var layoutCSS; // Name of CSS file for the table widget.
var noCssLayout; // true or false, indicating if the table should have layout or not, if not, it would be a plain sortable table.
var serversideSort; // true or false, true if the widget is sorted on the server.
var serversideSortAscending;
var tableCurrentlySortedBy;
var serversideSortFileName; // Name of file on server to send request to when table data should be sorted
var serversideSortNumberOfRows; // Number of rows to receive from the server
var serversideSortCurrentStartIndex; // Index of first row in the dataset, i.e. if you move to next page, this value will be incremented
var serversideSortExtraSearchCriterias; // Extra param to send to the server, example: &firstname=Alf&lastname=Kalleland
var pageHandler; // Object of class DHTMLSuite.tableWidgetPageHandler
var rowClickCallBackFunction; // Row click call back function.
var objectIndex; // Index of this object in the DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects array
this.serversideSort = false; // Default value for serversideSort(items are sorted in the client)
this.serversideSortAscending = true; // Current sort ( ascending or descending)
this.tableCurrentlySortedBy = false;
this.serversideSortFileName = false;
this.serversideSortCurrentStartIndex=0;
this.serversideSortExtraSearchCriterias = '';
this.rowClickCallBackFunction = false;
this.setRowDblClickCallBackFunction = false;
try{
if(!standardObjectsCreated)DHTMLSuite.createStandardObjects(); // This line starts all the init methods
}catch(e){
alert('You need to include the dhtmlSuite-common.js file');
}
this.objectIndex = DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects.length;
DHTMLSuite.variableStorage.arrayOfDhtmlSuiteObjects[this.objectIndex] = this;
}
DHTMLSuite.tableWidget.prototype = {
init:function()
{
this.tableWidget_okToSort = true;
this.activeColumn = false;
if(!this.layoutCSS)this.layoutCSS = 'table-widget.css';
DHTMLSuite.commonObj.loadCSS(this.layoutCSS);
this.__initTableWidget();
}
,
setLayoutCss:function(newCssFile)
{
this.layoutCSS = newCSSFile;
}
,
setRowClickCallBack:function(rowClickCallBackFunction)
{
this.rowClickCallBackFunction = rowClickCallBackFunction;
}
,
setRowDblClickCallBack:function(setRowDblClickCallBackFunction)
{
this.setRowDblClickCallBackFunction = setRowDblClickCallBackFunction;
}
,
setServerSideSort:function(serversideSort)
{
this.serversideSort = serversideSort;
}
,
setServersideSearchCriterias:function(serversideSortExtraSearchCriterias)
{
this.serversideSortExtraSearchCriterias = serversideSortExtraSearchCriterias;
}
,
getServersideSortNumberOfRows:function(serversideSort)
{
return this.serversideSortNumberOfRows;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -