我试图在其中一个列的单元格中放置一个按钮,并在单击时执行某些操作。
例如,我将这些行添加到SlickGrid示例1(http://mleibman.github.io/SlickGrid/examples/example1-simple.html)
首先到我添加的列数组:
{id: "Report", name: "Report", field: "Report", width: 40, sortable: true, formatter:reportFormatter}
然后我补充说:
function reportFormatter(row, cell, value, columnDef, dataContext) {
return "<input type='button' value='show' id='reportBtn'/>";
}
$('#reportBtn').click(function() {
alert("hello");
});
按钮出现在单元格中,但是没有调用click事件! 我必须做错事但不能为我的生活搞清楚 有人可以帮忙吗? 谢谢!
答案 0 :(得分:2)
你应该使用网格事件而非按钮事件,如下所示,
做你的行动
grid.onClick.subscribe(function (e, args) {
//check if your button was clicked
if ($(e.target).hasClass("btn")) {
var item = dataView.getItem(args.row);
///do your action
}
});
答案 1 :(得分:1)
使用预编译模板光滑网格示例。添加属性,例如。 ImageTrial,并在数据结构中使用动态输入按钮填充属性。
<script type=" " id="testtemplate">
<div class="test">
<b><%=ImageTrial%></b>
<b><%=ImageTrial2%></b>
</div>
dataForCell["ImageTrial"] = "<button type=\"button\" onclick=\"alert('a " + 1 + "')\">s</button>";
dataForCell["ImageTrial2"] = "<button type=\"button\" onclick=\"alert('b " + 2 + "')\">b</button>";
祝你好运
答案 2 :(得分:1)
slick.formatters.js
...
"btnForm": buttonsFormatter // add Slick.Formatters
..
function buttonsFormatter(row, cell, value, columnDef, dataContext) {
return "<input type='button' value='"+value+"' id='btnForm' value2='"+row+"' value3='"+cell+"' onClick='fnBtnClick(this);'/>";
}
添加你的html脚本
function fnBtnClick( objBtn ){
alert( "row::[" + objBtn.value2 + "]\n\ncell::[" + objBtn.value3 + "]" );
}