javascript - 网格列中的条件按钮
问题描述
我正在尝试使用 Syncfusion GRID for Javascript (ejGrid) 在 Columns Grid 中包含一个按钮:
$("#Grid").ejGrid({
dataSource: ej.DataManager({
.
columns: [
.
.
{ headerText: 'Detail', template: '<a class="btn btn-info" rel='nofollow'
rel='nofollow' href="/ServicesOrder/Detail/{{:ServicesOrderId}}">Detail</a>,<a class="btn btn-sucess" >Finish</a> ,
'<a class="btn btn-danger" >In progress</a>' },
实际上,我的表 ServicesOrder 中有一个变量 Rest(剩余付款),我的目标是显示两个按钮之一(完成或进行中):
if (Rest == 0)
Only display -->
{ headerText: 'Detail', template: '<a class="btn btn-info" rel='nofollow'
rel='nofollow' href="/ServicesOrder/Detail/{{:ServicesOrderId}}">Detail</a>,<a class="btn btn-sucess" >Finish</a> ' },
Else
Only display -->
{ headerText: 'Detail', template: '<a class="btn btn-info" rel='nofollow'
rel='nofollow' href="/ServicesOrder/Detail/{{:ServicesOrderId}}">Detail</a>,<a class="btn btn-danger" >In progress</a>' }, `
解决方案
我们已经使用 columnTemplate 功能和 JS 渲染(如果其他条件)实现了您的要求。根据已验证的列值,将呈现按钮。请参考以下代码示例
`<script type="text/x-jsrender" id="columnTemplate">
{{if Verified}}
<a class="btn btn-info" rel='nofollow' rel='nofollow' href="/ServicesOrder/Detail/{{:ServicesOrderId}}">Detail</a>,<a class="btn btn-sucess">Finish</a>
{{else}}
<a class="btn btn-info" rel='nofollow' rel='nofollow' href="/ServicesOrder/Detail/{{:ServicesOrderId}}">Detail</a>,<a class="btn btn-danger">In progress</a>
{{/if}}
</script>
<div id="Grid"></div>
<script type="text/javascript">
$(function () {
$("#Grid").ejGrid({
// the datasource "window.employeeView" is referred from jsondata.min.js
dataSource: window.gridData,
allowPaging: true,
pageSettings: { pageSize: 4 },
columns: [
{ field: "OrderID", headerText: "Order ID", isPrimaryKey: true, textAlign: ej.TextAlign.Right, width: 90 },
{ field: "CustomerID", headerText: "Customer ID", width: 150 },
{ field: "EmployeeID", headerText: "Employee ID", textAlign: ej.TextAlign.Right, width: 100 },
{ field: "OrderDate", headerText: "Order Date", textAlign: ej.TextAlign.Right, width: 100, format: "{0:MM/dd/yyyy}" },
{ field: "Freight", headerText: "Freight", textAlign: ej.TextAlign.Right, format: "{0:C}" },
{ field: "Verified", headerText: "Verified", width: 100 },
{ headerText: "Employee Image", template: "#columnTemplate", textAlign: "center", width: 110 },
]
});
});
</script>`
请参阅以下示例
示例:https ://jsplayground.syncfusion.com/x33fazrh
请参阅帮助文档以供参考
推荐阅读
- angular - 如何测试用 await 转换为 Promise Angular 的 HttpClient
- php - 搜索按钮错误:试图获取非对象的属性“showname”(查看
- java - ExpandableListView Android如何控制子复选框的状态并将父复选框更改为true
- python - 如何在 tkinter 中自动移动滚动条?
- swiftui - 如果父视图中已有工作表,则不能在 SwiftUI 的子视图中显示工作表
- java - 为什么 Criteria API 会抛出 StackOverFlow 异常?
- google-sheets - 通过比较一些值从其他电子表格中获取数据
- atl - 关于 ATL 140 ,这是 DECLARE_REGISTRY 中的错字吗?
- android - 自定义 FooterBarLayout 中没有滚动以跟随 AppBarLayout
- cakephp - 更改路径搜索顺序