0

私の最初の問題は、シングルセレクトモードで剣道グリッドを使用していて、ビューを初めてロードするときに最初の行が選択される必要がある、つまり、プログラムで最初の剣道グリッド行を選択したいということです。さらに、他の問題は、そのグリッドにラジオボタン列を挿入し、ラジオボタン選択を行選択と同期させたい、つまり、ユーザーが行を選択すると、ラジオボタンが選択されるようにすることです。これがコードです。

   @(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

グリッドはすべてクライアント上で作成されるため、コントローラーで行を選択するようなことはありません。dataBoundイベントを使用して、最初の行を選択することができます。

例えば

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

または、バインドの代わりに1 つを使用して、グリッドが再バインドされるたびではなく、ページが読み込まれたときにのみ行が選択されるようにします (並べ替え、フィルターなど)。詳細については、ドキュメントを確認してください。

于 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 に答える