替換編輯時的控制項為kendoComboBox
資料來源
//grid join 二個資料表,讓account欄位可以利用template顯示acc_name
//spending 資料表的 account 欄位,對應 acc_data 資料表的 acc_sn
function select(){
$sql ="select spending.id,account,spend_date,note,acc_name from spending join acc_data on acc_data.acc_sn=spending.account";
$result = mysql_query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$obj=array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$obj[]=$row;
}
header("Content-type: application/json");
echo json_encode($obj);
}
//下拉項目
function select_acc(){
$sql = "select * from acc_data";
$result = mysql_query($sql) or redirect_header($_SERVER['PHP_SELF'],3, mysql_error());
$obj=array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$obj[]=$row;
}
header("Content-type: application/json");
echo json_encode($obj);
}
grid 欄位設定
columns: [
{
field:'account',
width: 100,
title: '帳戶',
editor: accEditor,//對應 function accEditor
template: "#=acc_name#"//grid有join acc_data,所以可取得acc_name做為此欄位的顯示資料
}
]
function accEditor(container, options) {
$('')
.appendTo(container)
.kendoComboBox({
autoBind: false,
filter: "contains",//在下拉項目中輸入關鍵字,可以篩選出相關的項目
optionLabel: "[選擇分類]",
dataSource: {
type: "json",
transport: {
read: "data/spending.php?op=select_acc"
}
}
});
}