将变量从ascx传递到javascript时出现问题

时间:2014-02-11 10:46:53

标签: javascript asp.net ascx

我正在尝试使用以下语法将我的ascx.cs文件中的变量传递给我的javascript:

在ascx.cs中:

protected string DateFinMax = WebConfigurationManager.AppSettings["DateFinMax"].ToString();

在javascript中:

$(function () {
    $(".datepickerValidTo").datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd/mm/yy',
        minDate : 0,
        maxDate: <%= DateFinMax %>,
        showOn: 'both',
        buttonImage: '../css/smoothness/images/calendar.gif',
        buttonImageOnly: false
    }, $.datepicker.regional['fr']);
});

后面代码中变量的值很好但是我似乎无法将它传递给我的js文件。我试图把简单和双重引用,但没有任何效果。 js文件在我的ascx文件末尾调用如下:

<script src ="js/datepicker.js"></script>

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:3)

您使用的技术仅用于将代码后面的变量传递给相应的aspx标记。无法从链接的javascript文件中的代码中呈现内容。但是,您可以做的是在页面上创建一个变量,并在js文件中使用它。

在页面上,例如在Page_Load上,执行以下操作:

string script = string.Format("var DateFinMax = {0};", this.DateFinMax);
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "initDateFinMax", script, True);

在脚本文件中只需使用它,因为这只是另一个javascript变量:

minDate : 0,
maxDate: DateFinMax,
showOn: 'both',

只要您的脚本添加到页面底部,变量就应该可见。