2013-06-11 47 views
0

當我嘗試設置ASP文本框的啓用屬性時,出現「CS0030:無法將類型'字符串'轉換爲'bool'」作爲錯誤消息。使用Javascript設置ASP文本框的啓用屬性

標記如下:

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

而且SCRIPT關閉是:

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; 
    } 
} 
+0

ASP.Net不能正常工作。您不能混合服務器端和客戶端代碼。 – SLaks

+0

你在這裏混淆了服務器端和客戶端代碼。爲什麼要使用服務器端內聯的東西,但把客戶端的JavaScript呢?更不用說你的「額外」引號(單一_和_雙...爲什麼?) –

+0

沒有服務器端語言實際上是這樣工作的。你不能從你的服務器端代碼調用客戶端(javascript)函數,反之亦然。另外,我強烈建議從aspx頁面中刪除樣式信息並將其移至一個css文件。 –

回答

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"); 
     } 
    }); 
}); 
0

你需要一個JavaScript事件給外線火力的asp.net控制標記。 以下是以頁面加載爲例實現此目的的示例:

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

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