2009-09-03 5 views
1

J'ai méthode vb.net et je l'appelle à partir du code JS je ne peux pas envoyer paramètre à cette méthode et voici exemple: code JS:Comment envoyer des paramètres à la méthode VB.NET à partir du code JavaScript?

function OnSave() 
    { 
     var sign = document.FORM1.SigPlus1.Signature(); 
     <%Save(sign) %> 
    } 
méthode

VB:

Public Sub Save(ByVal obj As Object) 
    Dim obj1 As New PFSIGNATURELib.SigniShellSignature 
    obj1.SignatureBytes = obj 
    obj1.SaveBitmapToFile(CurDir() & "\sign1.bmp", 200, 200) 
    signImg.Src = CurDir() & "\sign1.bmp" 

End Sub 

Répondre

1

Eh bien en fait, vous pouvez le faire d'une manière "facile":

Ajouter un LinkButton caché vous page:

<asp:LinkButton runat="server" id="MyPostBackHelper" style="display: none;" /> 

puis dans votre javascript:

function OnSave() 
{ 
    var sign = document.FORM1.SigPlus1.Signature(); 
    __doPostBack(<%= MyPostBackHelper.UniqueID %>, sign); 
} 

puis dans le code suivant:

Public Sub MyPostBackHelper_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyPostBackHelper.Click 
    Dim obj1 As New PFSIGNATURELib.SigniShellSignature 
    obj1.SignatureBytes = Request.Form("__EVENTARGUMENT") 
    obj1.SaveBitmapToFile(CurDir() & "\sign1.bmp", 200, 200) 
    signImg.Src = CurDir() & "\sign1.bmp" 
End Sub 
0

Il n'y a pas de moyen facile de le faire.

Votre meilleur pari est de créer un appel de service Web, et avoir Javascript appeler le service Web en utilisant ASP.NET Ajax.

Here est un moyen de le faire.

+0

Vous ne pouvez pas simplement utiliser Save() une méthode de page, puis l'appeler du côté client via AJAX? –

+0

Comment convertir l'objet? Le service Web fait bien pour vous. Je n'ai pas réussi à le faire avec succès, je l'ai fait avec un service web. Ou d'une autre façon, je l'ai fait se connecter à un bouton caché, mais c'est beaucoup plus compliqué. –

0

Est-il possible de faire quelque chose comme

<%Save(%>sign<%) %>?

+0

Non ... Si vous exécutez "Save (", vous obtiendrez une erreur, même chose pour ")". vous ne pouvez pas mélanger et combiner des instructions VB.NET et Javascript de cette façon. –

0

Pourriez-vous pas utiliser les bibliothèques ajax intégrés dans .net 3.5 et marquer votre méthode comme méthode web

 <WebMethod()> _ 
    Public Shared Function SaveParamsData 
End sub 

Utilisez ensuite javascript pour appeler cette méthode.

PageMethods.SaveParamsData(ReportItemPramName, MyMethod_Result); 
0

hmm, ne pouvez-vous pas faire en sorte que le javascript affiche à nouveau les données sur la page. Puis vérifier pour voir s'il y a postdata sur le chargement de la page, s'il y a, puis enregistrez-le

Questions connexes