2012-02-05 52 views
0

我想使用LGPL版本的智能客戶端連接到我自己的服務器。我希望SmartClient發送一個提取請求(操作類型,範圍等)—我會處理其餘的。但我無法強制SmartClient執行此操作。我設法做的就是強制它發送一個簡單的GET請求。我應該添加什麼?使用SmartClient LGPL版本獲取數據

我的代碼:

<HTML> 
    <HEAD> 
    <SCRIPT>var isomorphicDir="../isomorphic/";</SCRIPT> 
    <SCRIPT SRC=../isomorphic/system/modules/ISC_Core.js></SCRIPT> 
    <SCRIPT SRC=../isomorphic/system/modules/ISC_Foundation.js></SCRIPT> 
    <SCRIPT SRC=../isomorphic/system/modules/ISC_Containers.js></SCRIPT> 
    <SCRIPT SRC=../isomorphic/system/modules/ISC_Grids.js></SCRIPT> 
    <SCRIPT SRC=../isomorphic/system/modules/ISC_Forms.js></SCRIPT> 
    <SCRIPT SRC=../isomorphic/system/modules/ISC_DataBinding.js></SCRIPT> 
    <SCRIPT SRC=../isomorphic/skins/SmartClient/load_skin.js></SCRIPT> 
    </HEAD> 
    <BODY> 
    <SCRIPT> 

    isc.DataSource.create({ 
     ID:"countries", 
     dataURL:"countries_small.js", 
     fields:[ 
      {name:"name", type:"text", primaryKey:true}, 
      {name:"population"}, 
     ] 
    }); 

    isc.ListGrid.create({ 
     width: "100%", 
     height: 50, 

     dataSource: "countries", 
     drawAllMaxCells:0, 
     dataPageSize:1, 
     drawAheadRatio:1, 
     showAllRecords:false, 
     autoFetchData: true 
    }); 

    </SCRIPT> 
    </BODY> 
    </HTML> 

回答

2

好的,我找到了解決方案。線索是使用RestDataSource。

isc.RestDataSource.create({ 
    ID:"countriesDS", 
    dataFormat:"json", 
    dataURL: "partial.js", 
    operationBindings:[ 
         {operationType:"fetch", dataProtocol:"postParams"} 
        ], 
    fields:[ 
      {title:"Name", name:"name", type:"text", primaryKey:true}, 
      {title:"Population", name:"population", type:"text"} 
     ] 
}); 

isc.ListGrid.create({ 
    width: "100%", 
    height: 60, 
    dataFetchMode:"paged", 
    dataSource: "countriesDS", 
    dataPageSize:2, 
    canEdit:true, 
    drawAheadRatio:1, 
    showAllRecords:false,  
    autoFetchData: true 
}); 

然後,響應可能看起來像:

{ response:{ 
    status:0, 
    startRow:0, 
    endRow:1, 
    totalRows:2, 
    data:[ 
      {name:"Italy", population:"12"}, 
      {name:"Germany", population:"121"} 
    ] 
    } 
} 
0

你想要做的事情是定義你的網址,其他操作:

取代你dataURL與個人綁定的數據源對象:

operationBindings:[ 
{operationType:"fetch", dataURL:"<fetch URL>"}, 
{operationType:"add",dataProtocol:"postParams", dataURL:"<insert URL>"}, 
{operationType:"update",dataProtocol:"postParams", dataURL:"<Update URL>"}, 
{operationType:"remove",dataProtocol:"postParams", dataURL:"<delete URL>"}] 

設置您的網格ID並使其可編輯:

ID:"MyGrid" 
canEdit: true, 
editEvent: "click" 

當你離開該行時,它應該觸發更新請求。

將按鈕添加新行和刪除行使用以下命令:一旦你動過的行

isc.IButton.create({title:"New",click:"MyGrid.startEditingNew()"}); 
isc.IButton.create({title:"Delete",click:"MyGrid.removeData()"}); 

你添加URL應該接受請求。一旦你按下按鈕就刪除。

我希望這很有幫助。