2013-01-09 41 views
0

我的第一個問題是:我使用單選模式的kendo網格,當第一次加載視圖時,第一行被選中,換句話說,我想選擇第一個劍道網格以編程方式行。 而且另一個問題是我在網格中插入單選按鈕欄,我想同步 單選按鈕與行選擇選擇,換句話說,我想,當用戶選擇行,它會導致它的單選按鈕選擇 請幫我 TNX 這是代碼:從控制器中選擇Kendo ui網格行

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

回答

1

有沒有這樣的事情,使控制器中選擇的行,因爲網格都是在客戶端上創建的。您可以使用dataBound事件來選擇第一行。

例如

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

或使用一個代替綁定,使只有當頁面加載,而不是每次當電網是反彈選擇的行 - 分類,過濾等。檢查documentation獲取更多信息。

+0

感謝您的回放,但我不知道如何使用你的jquery fanction,你能解釋更多嗎?我如何使用劍道網格? –

0

如果您不熟悉jQuery,我強烈建議您從http://jqueryair.com/獲取一個在線免費教程。 假設你的項目引用jQuery腳本在_layout頁面,你應該做的是數據綁定添加事件處理程序到網格:

.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添加的腳本同樣適用於腳本,永遠不止一種方式來爲貓皮膚。至於如果選中該行時選中單選按鈕顯示,我認爲如果您看過我提到的教程,則應該能夠弄清楚。如果您需要更多幫助,請發回。

+0

感謝您的指導,我看教程,這是很好的。我知道jquery,但不是很好。在您的代碼中,您使用#MyGridName選擇器,但在我的代碼中,我動態地命名網格像這樣.Name(「SMSGrid」+ (字符串)會話[「FileId」]),我怎樣才能使用你的代碼? –