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

本文关键字:设置 变量 我的 隐藏 代码 何访问 访问 Javascript | 更新日期: 2023-09-27 18:12:09

让我详细说明:我有一个ASPX页面,其中javascript驻留,我有三个。ascx页面注册在那里以及。我试图在javascript中使用一个变量,该变量设置在.ascx页面中。我得到一个错误的变量"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
            });

背后代码:from .ascx

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

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

您不能直接从页面上下文访问控件的属性(这是this关键字在您的代码中所做的)。但你可以这样做。

将. asx .cs页面中的定义修改如下:

public DateTime myDate2 {get; set;}

将它从一个字段更改为一个属性。然后进入.aspx页面,像这样在页面上声明控件:

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

然后像这样嵌入到JavaScript中:

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

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

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

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

另外,你可能需要引号。你还忘了加分号

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

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

创建任何全局js文件

关于localStorage的更多信息:

W3School解释

一个不错的博客