我有一个场景,我在一个页面中有一个用户控件,它包含核心asp.net逻辑外部javascript和UI,页面只是这个用户控件的容器。 现在我需要通过调用外部javascript文件的javascript函数在用户控件的页面加载时注入一个javascript,但它无法正常工作。任何帮助?
在Page_Load
中 Page.ClientScript.RegisterStartupScript(this.GetType(), "scriptKey", "TC.Report.OnSelectedReportChange('" + noParameterReports + "');");
ddlReport.Attributes.Add("onChange", "return TC.Report.OnSelectedReportChange('" + noParameterReports + "');");
在外部javascript中
OnSelectedReportChange: function (noParameterReports) {
var noParameterReport = noParameterReports.split("|");
var enableParameters = "true";
var pageName = TC.Report.getPageName(window.location.href);
for (i = 0; i < noParameterReport.length; i++) {
if ($("select[id$=ddlReport]").val() == noParameterReport[i]) {
if (pageName == "AGIReports") {
$('.officeTextBox').children().attr('disabled', true);
$('.dropDownTEMethod').children().attr('disabled', true);
} else {
$("select[id$=ddlOpCo]").disabled = true;
$("select[id$=ddlWeekEndingDate]").disabled = true;
}
enableParameters = "false";
}
}
if (enableParameters == "true") {
if (pageName == "AGIReports") {
$('.officeTextBox').children().attr('disabled', false);
$('.dropDownTEMethod').children().attr('disabled', false);
} else {
$("select[id$=ddlOpCo]").disabled = false;
$("select[id$=ddlWeekEndingDate]").disabled = false;
}
}
}
我对此有一些观察..首先在加载用户控件之前首先执行的registertartup脚本因此抛出错误TC未定义,这是正确的,因为外部java脚本仅在用户控件中引用但我是从用户控件的页面加载调用此方法。
其次我尝试在页面中添加ethe javascript文件引用之后在prerender事件上添加注册启动脚本,但是当jd方法中的ddlreport对象引用时,它说对象需要...页面呈现保证控件已加载并可用< / p>