0

ASP TextBox の有効なプロパティを設定しようとすると、「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 に答える