Bonjour tout le monde .

Mon problème se situe sur une fonction js appelée sur le OnClientDateSelectionChanged d'un CalendarExtender.

En fait, je passais avant par une fonction directement intégrée dans un ascx, cela se présentait ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
<script type="text/javascript" language="javascript">
//Limitation des dates des CalendarExtender
    function LimitCalendarExtender() {
 
 
        //Obtenir les CalendarExtender
        var calendarStart = $find('<%=CalendarExtenderStartDate.ClientID %>');
        var calendarEnd = $find('<%=CalendarExtenderEndDate.ClientID %>');
 
       //Traitements...
 
    }
 
</script>
<ajx:CalendarExtender runat="server" ID="CalendarExtenderStartDate" OnClientDateSelectionChanged ="LimitCalendarExtender"/>
 
<ajx:CalendarExtender runat="server" ID="CalendarExtenderEndDate" OnClientDateSelectionChanged ="LimitCalendarExtender"/>
Dans ce cas là, ça fonctionne parfaitement, je récupère bien les calendarextender et je peux faire mes traitements.

Le soucis, c'est que je dois faire exactement la même chose sur une autre page, alors plutôt que de me retaper tout le code, j'ai décidé de mettre mes fonctions js dans un fichier js, et de faire un RegisterClientScriptInclude:

Fichier JS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
//Limitation des dates des CalendarExtender
function LimitCalendarExtender(calendarStartClientId,calendarEndClientId) {
 
 
    //Obtenir les CalendarExtender
    var calendarStart = $find(calendarStartClientId);
    var calendarEnd = $find(calendarEndClientId);
 
 
 
}
Et mon RegisterClientScriptInclude dans mon ascx.cs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
protected override void OnInit(EventArgs e)
    {
 
        ScriptManager.RegisterClientScriptInclude(this.Page, typeof(Page), "FonctionsJS", @"Scripts/FonctionsJS.js");
}
Et donc sur mon ascx, je fais ainsi appel aux fonctions :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<ajx:CalendarExtender runat="server" ID="CalendarExtenderStartDate" OnClientDateSelectionChanged ="LimitCalendarExtender('<%=CalendarExtenderStartDate.ClientID %>','<%=CalendarExtenderEndDate.ClientID %>')"/>
 
<ajx:CalendarExtender runat="server" ID="CalendarExtenderEndDate" OnClientDateSelectionChanged ="LimitCalendarExtender('<%=CalendarExtenderStartDate.ClientID %>','<%=CalendarExtenderEndDate.ClientID %>')"/>
Et là, quand je lance mon ascx, j'ai une erreur JS : "Erreur Javascript, Objet Attendu", le debuggueur s'arrêtant sur OnClientDateSelectionChanged de mon ascx.

Quand je fais un RegisterClientScriptInclude, il trouve bien mon fichier JS, y'a pas de soucis là dessus.

Merci de votre aide ^^.