我正在尝试做这个问题的Best Practices - set jQuery property from Code-Behind
我的页面有以下代码:
function Initialize() {
$("#txtFromDateF").datepicker();
$(".needs-datepicker").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd-mm-yy',
altFormat: 'yy-mm-dd',
minDate: $("#<%= minDays . ClientID %>").val()
});
}
$(document).ready(function () {
Session.ResetTimer();
Initialize();
});
在我的页面上我有一个隐藏的字段:
<asp:HiddenField ID="minDays" runat="server" Value="" />
在我的代码隐藏On Page_load:
If Not IsPostBack Then
' Do some stuff
End If
SetMinDays()
SetMinDays()如下所示:
Private Sub SetMinDays()
Select Case TicketSubTypeDropDownList.SelectedItem.Value
Case TicketSubType.ChangeFrequency
minDays.Value = "+10d"
Case TicketSubType.ChangeOpeningHours
minDays.Value = "+30d"
Case TicketSubType.ChangeCiNumber
minDays.Value = "+20d"
Case Else
minDays.Value = "+0d"
End Select
End Sub
当我在下拉列表中选择不同的TicketSubType时,我会通过SetMinDays()。但是我的屏幕没有更新日期选择器。
如何确保datepicker使用SetMinDays中指定的值?
答案 0 :(得分:2)
你可以做到这一点,但有很多东西需要照顾,不要在这里无所事事,如果这个隐藏的字段不在页面中重复(嵌入式控件)做这个小黑客:
如果您使用的是asp.net 4.0或更高版本,请将客户端ID设为静态:
<asp:HiddenField ID="minDays" runat="server" ClientIDMode="Static" Value="" />
这样读:
minDate: $("#minDays").val()
<强>更新强>
在.aspx文件中读取服务器ID:
<script>
var yourid= '<%= minDays.ClientID%>';
</script>
在外部js文件中使用如下:
minDate: $("#" + yourid).val();