2016-07-27 11 views
0

Ich habe eine Kendo Dropdown-Liste und möchte eine Eigenschaft hinzufügen, aber nur wenn eine Bedingung erfüllt ist. So möglich und wenn ja, wie lautet die Syntax? Unten ist das Konzept, das ich im Sinn habe.Kann ich Bedingungen innerhalb der Kendo(). DropDownList() Definition hinzufügen?

@(Html.Kendo().DropDownList() 
    .Name("My Dropdown List") 
    .Value(Model.xxx) 
    If (some condition){ 
     .Height(1000) 
    } 
    .DataTextField("MYDESCRIPTIEN") 
    .DataValueField("MYFIELD") 
    .HtmlAttributes(new { style = "width:300px" }) 
) 

Antwort

0

Hallo dort sollten Sie in der Lage sein Events wie so hinzuzufügen:

@(Html.Kendo().DropDownList() 
    .Name("My Dropdown List") 
    .Value(Model.xxx) 
    .DataTextField("MYDESCRIPTIEN") 
    .DataValueField("MYFIELD") 
    .HtmlAttributes(new { style = "width:300px" }) 
    .Events(e => e.Change("OnDropDownChanged")); 
) 

JAVASCRIPT

function OnDropDownChanged(e) 
{ 
    //Do stuff to meet condition 
} 
+0

kann diese beim Laden der Seite erfolgen, nicht „onChange“? Ich habe ein paar Informationen zu meiner Frage hinzugefügt, daher sollte das Konzept, das ich vorhabe, klarer sein (tut mir leid, wenn die Frage nicht gut genug vorher beschrieben wurde) – Peter

+0

Ja, das kann beim Laden der Seite gemacht werden. Sie können die 'Ereignisse' verwenden, um an eine Bedingung zu binden, und dann die Eigenschaft explizit festlegen. – ThatAwesomeCoder

0

Update: Mit auf der Höhe Hinsicht, ich bin Angst, dass Sie kein Glück haben, da die Height() -Methode eine Nicht-Null erwartet Integer-Wert, der immer zum Client serialisiert wird. Die einzige Option besteht darin, zwei verschiedene Widget-Deklarationen innerhalb einer externen bedingten Anweisung zu verwenden.

===

Jede fließend Methode erwartet Wert eines bestimmten Typs oder einen Ausdruck, der einen Wert dieses Typs zurückgibt. Darüber hinaus hat jede Konfigurationseinstellung einen Standardwert.

So haben Sie ein paar Optionen:

  • Verwendung ein ternärer Operator, die unterschiedliche Werte zurückgibt, unter der Bedingung abhängig. In einem Fall kann es die Unterkunft Standardwert
  • verwenden, um eine Hilfsgröße zurückgeben, dass Sie den entsprechenden Wert im Voraus zugewiesen wird

Fluent Methoden, die eine Handlung erwarten unterschiedlich sein kann verwaltet und Sie können Standard-bedingte Anweisungen verwenden, anstelle von ternären. Hier

ist ein Beispiel für alle oben genannten Szenarien:

@{  
    bool myCondition = false; 
} 

@(Html.Kendo().DropDownList() 
    .HtmlAttributes(myCondition ? new { style = "width: 100%" } : new object { /* empty object */ }) 
    .Events(e => { 

      if (myCondition) 
      { 
       // nothing here this time 
      } 
      else 
      { 
       e.DataBound("onDataBound"); 
      } 

    }) 
) 

<script> 

    function onDataBound(e) { 
     console.log("dataBound"); 
    } 

</script>