[英]ASP.NET javascript parameter is null
我有一些JavaScript可以更改日历扩展程序控件的功能,我想将参数传递给(ID),并且该参数永远不会被设置。 当我在js文件中对参数进行硬编码时,该函数有效,但是我很难找出为什么可以将参数传递给函数。
这是我正在使用的aspx代码的示例:
<ajax:CalendarExtender ID="clxStartMonth" runat="server" TargetControlID="txtStartMonth" Format="MM/yyyy" DefaultView="Months" ClientIDMode="Static" OnClientHidden="onCalendarHidden('clxStartMonth');" OnClientShown="onCalendarShown('clxStartMonth');" ></ajax:CalendarExtender>
如您所见,我正在尝试将控件ID传递给由OnClientHidden和OnClientShown事件触发的函数。
这是JavaScript函数:
function onCalendarHidden(clx) {
var cal = $find(clx);
if (cal._monthsBody) {
for (var i = 0; i < cal._monthsBody.rows.length; i++) {
var row = cal._monthsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
Sys.UI.DomEvent.removeHandler(row.cells[j].firstChild, "click", call);
}
}
}
}
function onCalendarShown(clx) {
var cal = $find(clx);
cal._switchMode("months", true);
if (cal._monthsBody) {
for (var i = 0; i < cal._monthsBody.rows.length; i++) {
var row = cal._monthsBody.rows[i];
for (var j = 0; j < row.cells.length; j++) {
Sys.UI.DomEvent.addHandler(row.cells[j].firstChild, "click", call);
}
}
}
}
function call(eventElement) {
var target = eventElement.target;
switch (target.mode) {
case "month":
var cal = $find("clxStartMonth");
cal._visibleDate = target.date;
cal.set_selectedDate(target.date);
cal._blur.post(true);
cal.raiseDateSelectionChanged();
break;
}
}
关于如何解决此问题的任何想法?
在运行时查看HTML源代码(右键单击页面,然后选择“查看源代码”)。 验证您的控件clxStartMonth实际上是您控件的ID,并且没有被更改为其他名称(例如ctl0 $ clxStartMonth ...)。 如果控件ID已更改,则将clxStartMonth控件上的ClientIDMode属性设置为“静态”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.