【问题标题】:how to enable telerik dropdownlist如何启用 Telerik 下拉列表
【发布时间】:2013-07-23 22:37:11
【问题描述】:

我有一个默认禁用的 Telerik 下拉列表:

        <%= Html.Telerik().DropDownList().Name("YesNo").Enable(false)
        .Items(items => {
            items.Add().Text("").Value("");
            items.Add().Text("Yes").Value("Yes");
            items.Add().Text("No").Value("No");
                })%>                         

现在我想在有人为另一个 Telerik 下拉菜单选择“否”时启用它:

        <%= Html.Telerik().DropDownList().Name("Validate")
        .Items(items => {
            items.Add().Text("").Value("");
            items.Add().Text("Yes").Value("Yes");
            items.Add().Text("No").Value("No");
                })            
        .ClientEvents(events =>
        {
            events.OnChange("Validate_OnChange");
        })%>      

所以我尝试了这个 jquery 方法来启用,但它没有启用 ddl:

function Validate_OnChange(e) {

if($("#Validate").val() == "No"){
     $('#YesNo').attr('Enable',true);
    }
}

为验证 DDL 渲染标记:

<div class="t-widget t-dropdown t-header" style="width:249px;" tabindex="0">
<div class="t-dropdown-wrap t-state-default">
<span class="t-input">&nbsp;
</span>
<span class="t-select">
<span class="t-icon t-arrow-down">select
</span>
</span>
</div>
<input id="Validate" name="Validate" style="display:none" type="text">
</div>

【问题讨论】:

    标签: jquery telerik telerik-mvc


    【解决方案1】:

    你可以试试removeAttr

    function Validate_OnChange(e) {
       if($("#Validate").val() == "No"){ // Enable
          $("#YesNo").removeAttr("disabled");
       } else { // Disable
          $("#YesNo").attr("disabled", "disabled");
       }
    }
    

    更新

    <%= Html.Telerik().DropDownList().Name("YesNo").Enable(false)
        .Items(items => {
            items.Add().Text("").Value("");
            items.Add().Text("Yes").Value("Yes");
            items.Add().Text("No").Value("No");
                })%>
    <%= Html.Telerik().DropDownList().Name("Validate")
        .Items(items => {
            items.Add().Text("").Value("");
            items.Add().Text("Yes").Value("Yes");
            items.Add().Text("No").Value("No");
                })            
        .ClientEvents(events =>
        {
            events.OnChange("Validate_OnChange");
        })%>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
    
        function Validate_OnChange(e) {
            if ($("#Validate").val() == "No") {
                $("#YesNo").data("tDropDownList").enable();
            }
            else {
                $("#YesNo").data("tDropDownList").disable();
            }
        }
    
    </script>
    

    【讨论】:

    • 还是一样,它是一个 Telerik 下拉列表。不确定“禁用”属性是否会起作用。它有一个“Enable()”方法,该方法采用 bool vlaue 来启用禁用 ddl。启用(真)或启用(假)
    • 我目前只有 Kendo MVC Wrapper,所以无法验证。你能把渲染的标记贴上来吗?
    • 我更新了我的答案。请注意 Telerik MVC 扩展已被弃用。如果您正在创建一个新网站,我建议您使用 Kendo UI MVC Wrapper。
    • 感谢您的帮助。是的,不再有 Telerik MVC。这是一个现有的项目,不想仅仅因为 Telerik 想在不提供任何支持的情况下弃用 MVC 扩展而重新设计所有控件。不再给我 Telerik,他们可能也会放弃剑道
    • 我找到了 DropDownList。我用错了tComboBox。请看最后更新的。
    【解决方案2】:

    尝试使用简单的 javascript

    function Validate_OnChange(e) {
                var ddlValidate = $find('<%= Validate.ClientID %>');
                ddlValidate.disable();
    }
    

    【讨论】:

    • 我在 'var ddlValidate = $find('');' 行收到错误 'object expected'
    • 您可以使用 firebug 检查您的下拉列表的 ID...或者您是否托管了该网站...所以我可以查看一下并告诉您有什么问题?
    • @ArunBertil OP 是 ASP.Net MVC;您的答案是针对传统的 ASP.Net。
    • @ArunBertil id=Validate
    猜你喜欢
    • 2017-04-14
    • 1970-01-01
    • 2012-02-19
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多