Cascading DropDown正常捕获错误

时间:2013-01-11 03:18:10

标签: asp.net-mvc telerik-mvc cascadingdropdown

我的页面上有5个级联下拉菜单。 我希望他们尝试级联,但如果它没有级联 - 优雅地停止尝试或错误输出。 我也希望所有的组合框都能启用,而不是在前一个组合框被填充之前被禁用。

我在启用的fluent API上尝试了.Enable(true),但仍然禁用了下拉列表。知道怎么做这个吗?

   <div class="span5">
              <div class="control-group">
        @Html.Label("Product Types", new { @class = "control-label" })
        <div class="controls">
            @( Html.Telerik().ComboBox()
                .Name("drpProductTypes")
                .BindTo(new SelectList(ViewBag.drpProductTypes))
                .Placeholder("Select Category...")
                .CascadeTo("drpClass1").Enable(true)
            )
        </div>
        <div class="fix"></div>
    </div>

    <div class="control-group">
        @Html.Label("Class 1", new { @class = "control-label" })
        <div class="controls">
        @( Html.Telerik().ComboBox()
                .Name("drpClass1")
                .DataBinding(binding => binding.Ajax().Select("_GetDropDownClassOne", "List"))
                .Placeholder("Select Class 1...")
                .CascadeTo("drpClass2").Enable(true)
        )
        </div>
        <div class="fix"></div>
    </div>

    <div class="control-group">
        @Html.Label("Class 2", new { @class = "control-label" })
        <div class="controls">
        @( Html.Telerik().ComboBox()
                .Name("drpClass2")
                .DataBinding(binding => binding.Ajax().Select("_GetDropDownClassTwo", "List"))
                .Placeholder("Select Class 2...")
                .CascadeTo("drpClass3").Enable(true)
        )
        </div>
        <div class="fix"></div>
    </div>

    <div class="control-group">
        @Html.Label("Class 3", new { @class = "control-label" })
        <div class="controls">
        @( Html.Telerik().ComboBox()
                .Name("drpClass3")
                .DataBinding(binding => binding.Ajax().Select("_GetDropDownClassThree", "List"))
                .Placeholder("Select Class 3...")
                .CascadeTo("drpClass4").Enable(true)
        )
        </div>
        <div class="fix"></div>
    </div>

    <div class="control-group">
        @Html.Label("Class 4", new { @class = "control-label" })
        <div class="controls">
        @( Html.Telerik().ComboBox()
                .Name("drpClass4")
                .DataBinding(binding => binding.Ajax().Select("_GetDropDownClassFour", "List"))
                .Placeholder("Select Class 4...").Enable(true)
        )
        </div>
        <div class="fix"></div>
    </div>

由于

1 个答案:

答案 0 :(得分:0)

如果您不希望禁用外观,请不要使用级联功能 - 因为这是设计使然。

您可以借助更改事件和 dataBinding 事件手动实现该级联(如果通过e.data字段发送其他DropDownList的值,则可以我记得正确)和重新加载方法。

所有这些方法以及如何使用它们都可以在documentation中找到。