如何在代码后面更改jQuery datepicker选项

时间:2012-11-15 09:12:36

标签: c# jquery asp.net

我正在创建一个使用jQuery日期选择器小部件的用户控件,如下所示:

$(function () {
    $("#datePickerYearMonth").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd-M-yy',
    });
});

但是我没有对选项进行硬编码,而是想创建属性或类似的东西,以便我可以从后面的代码中动态更改属性。

这可能吗?

4 个答案:

答案 0 :(得分:9)

您可以使用内联代码,如下所示:

在代码背后:

   protected bool ChangeMonth
   {
          get{
                 return true;
          }
   }

这是javascript:

   $(function () {
        $("#datePickerYearMonth").datepicker({
            changeMonth: <%=ChangeMonth%>,
            changeYear: true,
            dateFormat: 'dd-M-yy',
        });
    });

答案 1 :(得分:1)

如果您创建匿名对象,例如

var myAO = new { changeMonth = true, changeYear = true, dateFromat = "dd-M-yy" };

您可以使用JavaScriptSerializer

将其转换为JSON字符串
var myJsonString = new JavaScriptSerializer().Serialize(myAO);

然后,您可以使用此字符串来构建您的JavasSript,例如你可以把它放在代码隐藏的属性中,然后在你的ASPX中有一个脚本块:

<script type="text/javascript">
    $(function () {
        $("#datePickerYearMonth").datepicker(<%= MyJsonStringProperty %>);
    });
</script>

答案 2 :(得分:0)

从后面的代码中渲染一些具有变量列表的JavaScript块,并在datepicker选项中使用相同的

选中此Create javaScript variable in code behind of asp.net

答案 3 :(得分:0)

$.fn.datepicker是在服务器完成处理后在客户端运行的函数。您总是可以编写生成相应JavaScript的服务器代码。

如果你想在AJAX调用中更改这些属性,比如说,你必须确保AJAX调用产生你需要的代码才能重新执行datepicker函数。