2009-09-08 9 views
0

J'ai une fonction vbscript qui recevra une valeur du contrôle ActiveX IntegriSign1 comme indiqué dans le code ci-dessous.Sur ASP.net, cliquez sur le bouton pour remplir une zone de texte ASP.Net à l'aide de VB Script

J'ai un ASP.net Texbox et ASP.net Button dans ma page asp.net comme indiqué dans le code ci-dessous.

De mes fonctions GetSignData() Comment puis-je remplir txtIntegri1 avec SignData Valeur

Merci

<script type="text/vbscript" > 
    sub GetSignData() 
     SignData=window.document.IntegriSign1.GetSignData() 
     'window.document.frmIntegriSign.txthashdata.value 
     set t1=window.document.getElementById("<%=txtIntegri1.clientID%>") 
     If tl<> null Then 
      t1.value=SignData 
     else 
      msgbox signData 
     End If 
    end sub 
</script> 
<asp:TextBox ID="txtIntegri1" runat="server" ></asp:TextBox> 
<input type="button" id="btnAccept" name="btnAccept" runat="server" value="Accept " onclick="GetSignData();" /> 

Je reçois une erreur objet requis txtIntegri

Répondre

0

Vous pouvez vous référer à l'ID de la zone de texte par modifier votre VBScript pour inclure quelque chose comme ceci:

<script type="text/vbscript" > 
    sub GetSignData() 
     ' assign SignData 
     ' SignData=window.document.IntegriSign1.GetSignData() 

     set txtIntegri = document.getElementById("<%= txtIntegri1.ClientID %>") 
     txtIntegri.value = SignData 
    end sub 
</script> 

Attribuez-le à une variable pour référencer la zone de texte, puis attribuez-lui la valeur souhaitée.

EDIT: comme l'a mentionné Joel, la visibilité actuelle de votre zone de texte empêche tout accès. Pour que cela fonctionne, vous devez afficher la zone de texte.


Voici mon exemple de travail. Une différence est dans l'événement onClick que j'ai dû enlever le point-virgule ";" pour le déclencher. Si vous démarrez un nouveau projet et déposez-le dans, en excluant la déclaration "<% @ Page ..." en haut, vous devriez être en mesure de voir la zone de texte en cours de mise à jour.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/vbscript"> 
     sub GetSignData() 
      signData = "Hello, StackOverflow!" 
      set myTextbox = document.getElementById("<%= Textbox1.ClientID %>") 
      myTextbox.value = signData 
     end sub 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="Textbox1" runat="server" Text="Hello, World!" /> 
     <input type="button" id="btnAccept" name="btnAccept" runat="server" value="Accept " onclick="GetSignData()" /> 
    </div> 
    </form> 
</body> 
</html> 
+0

Salut, Quand j'ajoute cela, je me fais une erreur window.document.hdIntegriSign1.clientID.value = SignData objet ne suppoert pas la propriété ou la méthode widow.document.hdIntegriSign1 – acadia

+0

@acadia: s'il vous plaît mettre à jour votre question avec votre dernier code afin que nous puissions vous aider mieux. J'ai mis à jour mon message pour montrer comment définir la zone de texte txtIntegri1. L'erreur que vous avez mentionnée semble faire partie de la façon dont vous obtenez la valeur SignData. –

+0

Ahmad Mageed, J'ai mis à jour le code et le message d'erreur Je suis capable d'obtenir la valeur SignData correctement, mais quand j'essaie de définir la valeur de la zone de texte, il lance l'objet erreur requise. Merci – acadia

2

Vous ne pouvez pas. La propriété Visible="false" sur votre zone de texte signifie qu'il n'est pas rendu au format HTML du tout. En ce qui concerne votre navigateur, il n'existe pas. Mais en mettant cela de côté (en supposant que vous ayez un autre code qui corrige cela), vous pouvez référencer l'ID du contrôle en utilisant la propriété .ClientID comme le suggère Ahmad Mageed.

+0

Bonne prise :) ... 15 caractères –

Questions connexes