0

我的第一个问题是:我在单选模式下使用剑道网格,我需要在第一次加载视图时选择第一行,换句话说,我想以编程方式选择第一个剑道网格行。此外,其他问题是我在该网格中插入单选按钮列,并且我想将单选按钮选择与行选择同步,换句话说,我希望当用户选择行时,它会导致它的单选按钮被选中请帮助我 tnx 这是代码:

   @(Html.Kendo().Grid<CommonData.Domain.LegalEntityPhone>()
.Name("SMSGrid")
.HtmlAttributes(new { style = "width:800px;" })
.Selectable(selectable =>
             selectable.Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))

.Columns(columns =>
    {
       columns.Bound(c => c.Id)
    .Title(" ")
    .ClientTemplate(" <input type='radio' id='Approve' name='chkApprove' />");

       columns.Bound(c => c.Number)
    .Title("Destination")
    .HeaderHtmlAttributes(new { style = "text-align: center;" })
    .HtmlAttributes(new { style = "text-align: center; });

       columns.Bound(c => c.CityCode)
    .Title("City Code")
    .Width(30)
    .HeaderHtmlAttributes(new { style = "text-align: center" })
    .HtmlAttributes(new { style = "text-align:center;width:30px" });


        columns.Command(command => { command.Edit(); }).Width(150);
        })

.Editable(editable => editable.Mode(GridEditMode.InLine))
    .Events(events => events.Change("OnChange"))
    .DataSource(dataSource => dataSource
        .Ajax()
        .Model(model =>
        {
                       model.Id(p => p.Id);
                       model.Field(p => p.Id).Editable(false);
        })
    .Read(read => read.Action("LegalEntityPhoneInfo_Read", "Message"))
    .Update(update => update.Action("LegalEntityPhoneInfo_Update", "Message"))
                    )
                )
4

2 回答 2

1

没有在控制器中选择行这样的事情,因为 Grid 都是在客户端上创建的。您可以使用dataBound事件来选择第一行。

例如

$(function(){
     $('#GridName').data().kendoGrid.bind('dataBound',function(e){
          this.select(this.tbody.find('>tr:first'));
     }) 
})

或者使用one而不是bind仅在页面加载时选择行,而不是每次重新加载 Grid - 排序、过滤等。查看文档以获取更多信息。

于 2013-01-09T13:19:17.133 回答
0

如果您不熟悉 jQuery,我强烈建议您从 http://jqueryair.com/获取在线免费教程。假设您的项目在您的 _Layout 页面中引用 jQuery 脚本,您所要做的就是将 Databound 的事件处理程序添加到网格中:

.Events(events => events.DataBound("Grid_Databound"))

然后只需将此脚本粘贴到页面上:

<script> 

function Grid_Databound() {

var grid = $("#MyGridName").data("kendoGrid");
row = grid.tbody.find(">tr:not(.k-grouping-row)").eq(0);
grid.select(row);
        }
</script>

我确信 zeinad 添加的相同脚本也会起作用,而且总是不止一种给猫剥皮的方法。至于如果选择了行则显示单选按钮,我想如果你看过我提到的教程,你应该能够弄清楚。如果您需要更多帮助,请回复。

于 2013-01-09T22:12:59.150 回答