我是backgrid的新手,并在表单中使用它来允许用户选择一行(通过复选框),然后单击“提交”。我不知道如何配置我的网格,使其行为像“单选按钮”,因为只能选择一行。这是backgrid原生支持的东西,还是我需要编写一个处理程序来“取消选择”以前选择的行?
发布于 2017-01-17 09:46:19
下面是一个快速n脏方法:
wellCollection.on('backgrid:selected', function(model, selected) {
if (wellGrid.getSelectedModels().length > 1) {
model.trigger("backgrid:select", model, false);
alert('Only one selection is allowed.');
}
});缺点是这种方法需要使用"SelectAll“,这对用户来说真的是违反直觉的。我不希望使用"SelectAll“,但它是填充getSelectedModels对象所必需的。
发布于 2017-08-22 02:22:04
您可以创建呈现单选按钮的自定义单元格。下面的实现可能需要做更多的工作,但下面这样的实现可以让您开始:
var RadioCell = Backgrid.Cell.extend({
events: {
"click .selectedRadio": "makeSelected"
},
render: function () {
this.template = Mustache.to_html($("#radioCell").html(), this.model.toJSON());
this.$el.html(this.template);
this.delegateEvents();
return this;
},
makeSelected: function () {
// set all to inactive
this.model.collection.invoke('set', { "SomeModelAttrib": false });
// check if radio is checked and set the value on the model
var radioValue = $("input[name='someSelection']").is(":checked");
this.model.set("SomeModelAttrib", radioValue);
}
});和小胡子模板:
<script type="text/template" id="radioCell">
<input type='radio' class='selectedRadio' name='someSelection' value="{{SomeModelAttrib}}" {{#SomeModelAttrib}}checked{{/SomeModelAttrib}}>
</script>https://stackoverflow.com/questions/40009503
复制相似问题