0
我有一些JavaScript來改變日曆擴展控件的功能,我想傳遞一個參數(ID)和參數永遠不會被設置。當我在js文件中硬編碼參數時,該函數起作用,但我無法找到爲什麼我可以將該參數傳遞給該函數。ASP.NET的JavaScript參數爲空
這裏是我使用的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;
}
}
任何想法,我能做些什麼來解決這個問題?
嘗試記錄函數內部的參數以查看它是否被定義。你能告訴我們這些參數被定義在哪裏嗎? –
該函數確實收到參數,但是我得到一個空引用錯誤。如果我使用參數調用函數,即使我硬編碼控件ID而不是使用參數中的ID,它似乎也找不到控件。 –
JavaScript是否與ASPX位於同一個文件中?或者是否有JavaScript的separte .JS文件? –