2012-04-02 28 views
0

TelerikグリッドをASP.NET MVC 3 Razorエンジンで使用する。Telerik Grid MVC Razor:行と火災選択イベントを自動的に選択

ユーザーが行を選択すると、ページの一部を非表示にします。これは、行をクリックするとうまくいきます。

しかし、私は、自動的にページが

にロードされるとき、それは選択された表示されますので、私は、行の表示色を変更することができますが、私はと呼ばれるselectイベントを持ってする方法を見つけ出すことができない最初の行を選択する必要があります!ここで

がグリッドコードです:

@(Html.Telerik().Grid<SomethingViewModel>() 
      .Name("SomethingGroupGrid") 
      .ClientEvents(events => 
       { 
        events.OnDataBinding("SomethingGroupGrid_onDataBinding"); 
       }) 
        .DataBinding(dataBingding => dataBingding.Ajax().Select("SomethingGroupGrid", "Something")) 
      .Columns(columns => 
       { 
        columns.Bound(c => c.Id).Hidden(); 
        columns.Bound(c => c.Name) 
        .Title("Groups"); 
       }) 
      .Selectable() 
      .Pageable(x => x.PageSize(10)) 
      .ClientEvents(events => events.OnRowSelect("SomethingGroupGrid_RowSelect")) 


     ) 

誰かが助けることができますか?

答えて

1

[OK]を私は気まぐれに醜い解決策が見つかりました:私はグリッド上OnRowDataBoundイベントを追加

を。このOnRowDatabound関数は、OnRowSelectイベントを発生させます。 次に、最初の行が選択されているかどうかをチェックするbool値を保持するためにpage global javascript変数を追加しました。そのため、OnRowDataboundは各行に対してOnRowSelectを呼び出しません。

@(Html.Telerik().Grid<SomethingViewModel>() 
     .Name("SomethingGroupGrid") 
     .ClientEvents(events => 
      { 
       events.OnDataBinding("SomethingGroupGrid_onDataBinding"); 
      }) 
       .DataBinding(dataBingding => dataBingding.Ajax().Select("SomethingGroupGrid", "Something")) 
     .Columns(columns => 
      { 
       columns.Bound(c => c.Id).Hidden(); 
       columns.Bound(c => c.Name) 
       .Title("Groups"); 
      }) 
     .Selectable() 
     .Pageable(x => x.PageSize(10)) 
     .ClientEvents(events => events.OnRowSelect("SomethingGroupGrid_RowSelect")) 
     .ClientEvents(events => events.OnRowDataBound("SomethingGroupGrid_OnRowDataBound")) 


    ) 
<script type="text/javascript"> 
     var firstRowSelected = false; 

     function PreviewAccountGrid_DataBound(e) { 

     if (firstRowSelected == false) { 
      SomethingGroupGrid_RowSelect(e); 
      firstRowSelected = true; 
     } 
     } 

</script> 

pleseははそれを行うには良い方法があることを教え、またはそれがひどく(すでにいまいましい低い)Telerikコントロールの私の意見を低下させます。

関連する問題