0

尝试设置 ASP 文本框的启用属性时,我收到“CS0030:无法将类型 'string' 转换为 'bool'”作为错误消息。

标记如下:

<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;
    }
}
4

2 回答 2

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>
于 2013-06-11T16:02:23.573 回答
0

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

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");
        }
    });
});
于 2013-06-11T15:55:24.707 回答