让我详细说明:我有一个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"]);
答案 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的更多信息: