0

Fondamentalement, j'ai un gridview qui est ouvert dans une nouvelle fenêtre à partir de la fenêtre parente. Il a un tas d'enregistrements avec un bouton d'affichage pour voir les détails de chaque enregistrement (qui reste dans la même fenêtre nouvellement ouverte). J'ai un calendrier dans la fenêtre parente qui accepte un paramètre Date querystring pour définir la date actuelle sur le calendrier au chargement de la page. J'essaie juste d'actualiser le calendrier dans la fenêtre parent pour correspondre à la date de l'étiquette dans la fenêtre nouvellement ouverte.Passer le paramètre en tant que texte à la fonction JavaScript à partir du code-behind .NET

Tout le code ci-dessous se trouve dans la nouvelle fenêtre. Le code-derrière .Net ci-dessous se réfère à quand ce bouton d'affichage est cliqué et tout est rempli. À la fin, j'appelle js pour actualiser la fenêtre parent et transmettre la valeur de LabelScheduleDate en tant que paramètre querystring. Maintenant, le label apparaît comme '03/25/2010 'dans le code-behind, mais quand je le passe au js, il apparaît comme' 0.00005970149253731343 'à la fin de la chaîne querystring. Je ne suis pas vraiment sûr de ce qui fait la valeur changer, et je veux le passer comme juste le texte. Ai-je besoin de le transmettre en tant qu'objet string? J'ai essayé mais je ne pense pas que je le faisais bien.

Merci.

JavaScript Fonction

function RefreshParent(inputDate) { 
    window.opener.location = window.opener.location + "?Date=" + inputDate; 
} 

code-behind .NET

Protected Sub RadGridOnlineRequests_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGridOnlineRequests.ItemCommand 

    If e.CommandName = "ViewOnlineRequest" Then 

     ' populates LabelScheduleDate among other controls values 
     ScriptManager.RegisterStartupScript(_ 
     Me, Me.GetType(), "clientScript", "RefreshParent(" & LabelScheduleDate.Text & ");", True) 

    End If 

End Sub 

Répondre

1

Tout ce que vous avez à faire est tout simplement pour vous assurer que votre script rendu va se retrouver avec des guillemets autour du texte:

RefreshParent('" & LabelScheduleDate.Text & "'); 

Si LabelScheduleDate.Text a la valeur "03/25/2010", cela se résoudra à

RefreshParent('03/25/2010'); 

... alors que votre code aurait décidé de

RefreshParent(03/25/2010); 

... ce qui signifierait que RefreshParent 3 REÇOIT divisé par 25 divisé par 2010.

+0

Ha, tout à fait oublier que . Merci! – ryanulit