success: function(data) {
if (data.recode == 0) {
for (var i = 0; i < data.result.list.length; i++) {
document.getElementById("sp").innerHTML +=
'<li class="tc-all"><span class="tc-img"><img onclick="selSPToParent(\'' +
data.result.list[i].id + '\')" src="' + data.result.imgPath +
data.result.list[i].imgUrl + '" width="150" height="150"/></span><span class="tc-wz">' +
data.result.list[i].name + '</span></li>';
}
}
}
const tpl = (item) => `
<li class="tc-all">
<span class="tc-img">
<img onclick="selSPToParent('${item.id}')" src="${data.result.imgPath}${item.imgUrl}" width="150" height="150"/>
</span>
<span class="tc-wz">${item.name}</span>
</li>
`;
success: function(data) {
if (data.recode === 0) {
const html = data.result.list.map(tpl).join('');
document.getElementById("sp").innerHTML = html; // 一次性賦值,避免重排
}
}
<table id="dg" title="商品列表" class="easyui-datagrid"
data-options="url:'Reader.aspx/GetStr',method:'post',pagination:true,fitColumns:true,singleSelect:true">
<thead>
<tr>
<th data-options="field:'imgUrl',formatter:imgFmt,width:100">圖片</th>
<th data-options="field:'name',width:200">名稱</th>
</tr>
</thead>
</table>
function imgFmt(val, row) {
return '<img src="' + row.imgPath + val + '" width="50" height="50"/>';
}
後端返回標準格式:{total:100, rows:[{id:1, name:'A', imgUrl:'a.jpg'},...]}
| 場景 | 推薦 | 理由 |
|---|---|---|
| 簡單列表、項目少 | 模板字符串 | 零依賴、性能好、易維護 |
| 複雜邏輯、多頁復用 | ArtTemplate/Handlebars | 模板預編譯、支持條件/循環/助手函數 |
| 需要分頁/排序/編輯/導出 | EasyUI DataGrid | 開箱即用豐富交互,後端只需返回標準 JSON |