這一小節的内容為大家介紹如何使用ServerMethod。從Server端自定義取出資料,並在Client顯示。下面以rwdSingle1為例。
Step1>
首先我們找到dgMaster這個【DataGrid】元件,【ToolItems】屬性編輯器進入,我們添加一個按鈕,用來呼叫ServerMethod程式。
Step2>
【Text】 屬性設定為"CallServerMethod",【onClick】輸入"CallServerMethod"。表示呼叫js的方法CallServerMethod。
Step3>
接著,我們切換到原始碼頁,將下面這段代碼貼入:
function CallServerMethod(){
var index =
$('#dgMaster').datagrid('getSelectedIndex');
if (index >= 0){
var row =
$('#dgMaster').datagrid('getRows')[index];//取得dgMaster上選中的一筆資料
$.callMethod('sRWDCustomers',
'testServerMethod', {CustomerID:row.客戶編號}, function(result){
var param =
$.parseJSON(result);
var OrderID =
"";
if (param.length != 0
&& param[0] != '0'){
for(var
i=0;i<param.length;i++)
{
OrderID += param[i] ;
}
OrderID =
OrderID.slice(0,-1);
alert("出貨單:" + OrderID);
}
else{
alert("無出貨單!");
}
})
}
else{
alert("請先選擇一筆資料!");
}
}
※裡面的callMethod方法內參數依序是:ServerModule的名字、ServerMethod的名字、上傳的參數(如果沒有的話可以填null)、Server端返回時的回調方法
Step4>
上面步驟完成後,來到Server端,在"sRWDCustomers"的【原始碼】頁中添加一個名為testServerMethod的方法。内容如下:
public object testServerMethod(dynamic objParam)
{
string str =
objParam.CustomerID; //取得前端傳至後端的參數
string sql= "select 出貨編號 from 出貨單 where 客戶編號
= "; //SQL條件句
sql = sql + str;
DataTable Tmp =
ExecuteDataTable("ERPS", sql); //執行SQL,"ERPS"為執行的資料庫
int count=Tmp.Rows.Count;
string retval ="";
if(count > 1){
for(int i=0;i<count;i++){
retval +=
Tmp.Rows[i]["出貨編號"].ToString()+",";
}
}else if(count == 1){
retval = Tmp.Rows[0]["出貨編號"].ToString();
}else{
retval = "0";
}
object ret;
ret = new object[] {retval};
return ret;
}
Step5>
保存後執行結果:在DataGrid上選中一筆資料後,按下CallServerMethod按鈕,此時會回傳該公司在訂單表中所擁有的訂單號碼。。
Related Topics