我可以在Kendo()中添加条件.DropDownList()定义?

时间:2016-07-27 09:48:52

标签: kendo-ui kendo-asp.net-mvc

我有一个kendo下拉列表,想要为它添加一个属性,但只有在满足某些条件的情况下。这可能,如果是的话,语法是什么?以下是我的想法。

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

2 个答案:

答案 0 :(得分:1)

更新:关于高度,我担心你运气不好,因为Height()方法需要一个非空的整数值,它总是被序列化到客户端。唯一的选择是在外部条件语句中使用两个不同的小部件声明。

===

每个fluent方法都需要某个类型的值,或者返回此类型值的表达式。此外,每个配置设置都有一个默认值。

所以你有几个选择:

  • 根据条件使用返回不同值的三元运算符。在一种情况下,它可能会返回属性的默认值
  • 使用辅助变量,该变量预先分配了适当的值

期望操作的流畅方法可以以不同方式管理,您可以使用标准条件语句,而不是三元组。

以下是所有上述情况的示例:

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

答案 1 :(得分:0)

您好,您应该可以像这样添加事件

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