如何在Javascript中访问变量,在我的代码后面设置

时间:2014-07-09 21:45:15

标签: c# javascript

让我详细说明:我有一个ASPX页面,其中有javascript所在,我也有三个.ascx页面。我试图在.ascx页面中设置的javascript中使用变量。我在变量“myDate2”上收到错误 我是否需要将JavaScript放在.js文件中以便在全局范围内使用它?

样品:

<%@ Register Src="~/In/MakePayment1a.ascx" TagPrefix="paymnt" TagName="paymnt" %>

javascript:

$(document).ready(function () {

            var dt = <%= this.myDate2 %>
                alert("this is my date :" + dt);

        $(function () {

            var daysValid = [1, 5, 10, 15, 20, 25];
            var sdate = new Date();
            var edate = new Date();
            edate.setDate(edate.getDate() + 25);

            $("#datepicker").datepicker({
                minDate: sdate,
                maxDate: edate,
                beforeShowDay: disableSpecificWeekDays,
                showOn: "button",
                buttonImage: "../Images/small_calendar3.jpg",


                buttonImageOnly: true
            });

代码背后:来自.ascx

public DateTime myDate2;
myDate2 = (DateTime)(SummaryDT.Rows[0]["payment_date"]);

3 个答案:

答案 0 :(得分:1)

您无法直接从页面上下文访问控件中的属性(这是this关键字在您的代码中执行的操作)。但这就是你能做的。

将.ascx.cs页面中的定义修改为:

public DateTime myDate2 {get; set;}

将其从字段更改为属性。然后转到.aspx页面并在页面上声明控件如下:

<paymnt:paymnt runat="server" id="MyPaymnt" />

然后将其嵌入JavaScript中:

var dt = '<%= MyPaymnt.myDate2.ToString("MM/dd/yyyy") %>';

将日期格式字符串替换为适合您的上下文的内容。

答案 1 :(得分:0)

看起来myDate2是嵌入在页面上的ascx控件的公共字段。你必须通过控件

来引用它
var dt = <%= this.MyControl.myDate2 %>

此外,您可能需要报价。你忘记了一个分号。

var dt = "<%= this.MyControl.myDate2 %>";

答案 2 :(得分:-1)

您可以将myDate2变量存储在localStorage变量中,然后您可以在您的页面中找到它,而无需为同一个

创建任何全局js文件

有关localStorage的更多信息:

W3School Explanation

A nice blog on it