使用Javascript设置ASP TextBox的enabled属性

时间:2013-06-11 15:09:13

标签: javascript asp.net

我得到" CS0030:无法转换类型'字符串'到了' bool'"尝试设置ASP TextBox的enabled属性时的错误消息。

标记如下:

<asp:TextBox ID="dateTo" runat="server" Enabled='<%# "javascript:disableDateTo()"%>' BackColor="#FFFF99" />

Javascipt功能是:

function disableDateTo() {
    // Disable the dateTo field if the dateFrom field doesn't contain a value
    if ($("#MainContent_dateFrom").datepicker("getDate") != null) {
        return false;
    }
    else {
        return true;
    }
}

2 个答案:

答案 0 :(得分:0)

我同意这些评论,你不能像在你的例子中那样混合服务器端和客户端代码。看起来你想要的东西是接受日期作为文本输入,直到用户从日历中选择日期。如果是这种情况,我会将其实现为纯客户端代码,如follows

HTML:

<div id='MainContent_dateFrom'></div>
<input id='dateTo' type='text' />

脚本:

$(document).ready(function() {
    $("#MainContent_dateFrom").datepicker({
        onSelect: function() {
            $("#dateTo").val(new Date(Date.parse($(this).datepicker("getDate"))).toLocaleDateString())
                .attr("disabled", "disabled");
        }
    });
});

答案 1 :(得分:0)

您需要在asp .net控件标记之外触发JavaScript事件。 以下是使用页面加载实现此目的的方法:

<script type="text/javascript">
$(function () {
    disable();
});

function disable() {
    if ($("#dateTo[disabled]").length > 0) {
        $("#dateTo").removeAttr('disabled');
    }
    else {
        $("#dateTo").attr('disabled', 'disabled');
    }
}
</script>