2017-06-19 11 views
0

私は剣道のUIを初めて使用しています。私は会計年度に満ちたコンボボックスを持っています。私はデフォルトでコンボボックスの同じランクにあるとは限りません現在のものを選択したいと思います。データベースには、現在の年であるときに0に設定されたフィールドがあります。私はデフォルト値として0になっているフィールドを持っています。剣道のコンボボックスのデフォルト値をLinqから設定する

ここに私のコントローラの関連コードがあります。 defaultValue変数は現在使用されていません。私は成功していないと何かをしようとしたし、私が達成しようとしていることを明確に示すので、私はそこにそれを聞かせた。

public JsonResult ListeAnneeFinanciere() 
    { 
     var dimtempsdate = new DimTempsDateViewModel(); 

     try 
     { 
      using (var db = new ParcAutoDbContext()) 
      { 
       var resultat = db.Dim_Temps_Date.Select(a => new { a.ANNEE_FINANCIERE_ID, a.CLASSEMENT }) 
               .Distinct() 
               .OrderByDescending(a => a.ANNEE_FINANCIERE_ID) 
               .ToList(); 

       var defaultValue = db.Dim_Temps_Date.Select(a => new { a.ANNEE_FINANCIERE_ID, a.CLASSEMENT }) 
               .Distinct() 
               .Where(a => a.CLASSEMENT == 0) 
               .OrderByDescending(a => a.ANNEE_FINANCIERE_ID) 
               .ToList(); 

       return Json(resultat, JsonRequestBehavior.AllowGet); 
      } 
     } 
     catch (Exception ex) 
     { 
      Log.Instance.Error(ex, message: "Erreur : ListeAnneeFinanciere"); 
      throw new HttpException((int) HttpStatusCode.InternalServerError, message: "500 - Internal Server Error"); 
     } 
    } 

これは私の見解では関連するコードです。私は、valueプロパティでデフォルト値を設定する必要があることを知っています。私はそれをハードコードすることができますが、それは私が望むものではありません。私はDataboundイベントでいくつか試してみましたが、成功しませんでした。正直言って、私は実際に何を試していいのか分からない。

<div class="form-group"> 
       <label class="control-label col-xs-3">Année financière</label> 
       <div class="col-md-4 col-xs-9"> 
        @{ 
         Html.Kendo().ComboBox() 
          //.Events(e => e.DataBound("setDefaultYear")) 
          .Name("AnneeFinanciere") 
          .Placeholder("Sélectionner une année financière") 
          .NoDataTemplate("Aucune donnée") 
          .DataTextField("ANNEE_FINANCIERE_ID") 
          .DataValueField("ANNEE_FINANCIERE_ID") 
          .AutoBind(true) 
          .Suggest(true) 
          .DataSource(source => 
          { 
           source.Read(read => 
           { 
            read.Action("ListeAnneeFinanciere", "Operation"); 
           }) 
           .ServerFiltering(true); 
          }) 
          //.Value("2017-2018") 
          .HtmlAttributes(new { @style = "width:100%" }) 
          .Render(); 
        } 
       </div> 
      </div> 

私はそれは難しいが、私はMVCで実験剣道UIやないと初心者だということであってはなりません知っています。英語は私の母国語ではありませんが、私の質問がはっきりしていて、誰かが私を助けてくれることを願っています。

ありがとうございます。両方DataTextFieldDataValueField以来

上記のサンプル・コードから

答えて

0

ANNEE_FINANCIERE_IDある -

ANNEE_FINANCIERE_IDは、値フィールドであると仮定すると言った、あなたは正しく設定されているデータは、あなたが最初にそれをチェックすることをお勧めします、で始まるようになったことを確認していませんCLASSEMENTがテキストフィールドである場合、デフォルトデータvar default = new {ANNEE_FINANCIERE_ID=0, CLASSEMENT="default"}をコントローラからビューへのビューデータとして渡すことによって、デフォルト値を設定できます。

 html.Kendo().ComboBox() 

         .Name("AnneeFinanciere") 
         .Placeholder("Sélectionner une année financière") 
         .NoDataTemplate("Aucune donnée") 
         .DataTextField("CLASSEMENT") 
         .DataValueField("ANNEE_FINANCIERE_ID") 
         .AutoBind(true) 
         .Suggest(true) 
         .DataSource(source => 
         { 
          source.Read(read => 
          { 
           read.Action("ListeAnneeFinanciere", "Operation"); 
          }) 
          .ServerFiltering(true); 
         }) 
         .Value(ViewData["defaultClassement"]) 
         .HtmlAttributes(new { @style = "width:100%" }) 
         .Render(); 
+0

デフォルトの_ANNEE_FINANCIERE_ID_は「2017-2018」です。対応する_CLASSEMENT_は0です。現在の年を教えてくれるのはCLASSEMENTの値です。参考までに、前年度には_ANNEE_FINANCIERE_ID_と_CLASSEMENT_: "2016-2017"と-1があります。次年度は「2018-2019」と1.等があり、会計年度が変更されたときに_CLASSEMENT_がデータベース内で変更されます。あなたの答えはありがとう、私の問題についての重要な情報を省いてごめんね。 –

+1

あなたが完全に私が望んでいたもの(私のせいでとにかく)を完全に理解していなかったとしても、あなたの答えは私が私が望んだことをするのを助けました:)ありがとう:) –

関連する問題