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

时间:2014-05-21 05:43:59

标签: c# javascript asp.net ajax calendar

我正在使用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?请帮忙。

1 个答案:

答案 0 :(得分:0)

你仍然需要在你的函数中使用$ find(CalBeh)._ selectedDate而不仅仅是CalBeh._selectedDate。你得到错误,因为CalBeh是字符串而不是日历对象。

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

您可以这样做以获取所选日期,而不是使用$ find和使用行为ID:

var date = cntrl._selectedDate