如何在Ajax日历扩展程序中查找行为ID

How to find behavior ID in Ajax calendar extender

本文关键字:查找 ID 程序 扩展 Ajax 日历      更新时间:2023-09-26

我使用Ajax日历扩展程序来选择多个日期。

    <Ajax:CalendarExtender ID="CalendarExtender2" runat="Server"  
BehaviorID="CalendarExtender2"  TargetControlID="TextBox8"  
PopupButtonID="Image1" OnClientDateSelectionChanged="dateselect" OnClientHidden="calendarhidden" OnClientShown="setInitialValue"/>

这是Java脚本代码

function dateselect(cntrl) {
    var calendarBehavior1 = $find("CalendarExtender2");
    var date = calendarBehavior1._selectedDate.format("M/dd/yyyy");
    var hiddencontrol = $get('<%=HiddenField1.ClientID %>');
    if (hiddencontrol.value.indexOf(date) == -1)
        hiddencontrol.value += date + ";";
    tag1 = 1;
}
function calendarhidden(cntrl) {
    var calendarBehavior = $find("CalendarExtender2");
    if (tag1 == 1)
        calendarBehavior.show();
    $get('<%=TextBox8.ClientID %>').value = $get('<%=HiddenField1.ClientID %>').value;
}

但是我想让这些java脚本函数一般化。这样我就可以用在其他日历扩展器上了。如果我传递这个

OnClientDateSelectionChanged="dateselect(this)"

如何找到行为ID使用这个?

您仍然必须使用$find(CalBeh)。_selectedDate不仅仅是CalBeh。函数中的_selectedDate。你会得到错误,因为CalBeh是字符串而不是日历对象。

编辑:在你的javascript事件函数(dateselect和calendarhidden)中,你有"control"参数。这是一个实际的日历对象。

不用$find和使用behavior id,你可以这样做来获得选定的日期:

var date = cntrl._selectedDate