2009-09-08 63 views
0

我有一個vbscript函數,它將從ActiveX控件IntegriSign1中獲得一個值,如下面的代碼所示。在ASP.net按鈕單擊使用VB腳本填充一個ASP.Net文本框

我在我的asp.net頁面中有一個ASP.net Texbox和ASP.net按鈕,如下面的代碼所示。

從我GetSignData()函數,我怎麼能填充txtIntegri1與SignData價值

感謝

<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();" /> 

我得到一個錯誤對象所需txtIntegri

回答

0

您可以參考文本框的ID修改您的VBScript以包含如下內容:

<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> 

將其分配給變量以引用文本框,然後爲其分配所需的值。

編輯:作爲喬爾提到,您的文本框的當前可見性阻止任何訪問它。爲了上面的工作,你需要顯示文本框。


這是我的工作示例。一個區別在於onClick事件中我必須刪除分號「;」讓它觸發。如果您啓動一個新項目並將其放入,不包括頂部的「<%@ Page ...」聲明,您應該能夠看到正在更新的文本框。

<%@ 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

嗨,當我添加此,我得到一個錯誤 window.document.hdIntegriSign1.clientID.value = SignData 對象不suppoert widow.document.hdIntegriSign1屬性或方法 – acadia 2009-09-08 20:24:12

+0

@acadia:請更新您的問題,您的最新的代碼,所以我們可以幫助你更好。我已更新我的帖子以顯示如何設置txtIntegri1文本框。你提到的錯誤似乎是你如何獲得SignData值的一部分。 – 2009-09-08 21:20:15

+0

Ahmad Mageed,我已經更新了代碼和錯誤消息,我能夠正確獲取SignData值,但是當我嘗試設置文本框的值時,它正在拋出對象所需的錯誤。謝謝 – acadia 2009-09-09 14:20:52

2

你不能。您的文本框上的Visible="false"屬性意味着它根本不呈現爲html。就您的瀏覽器而言,它不存在。

但是放在一邊(假設您有其他代碼可以糾正這種情況),您可以使用Ahmad Mageed建議的.ClientID屬性引用該控件的ID。

+0

好趕上:) ... 15個字符 – 2009-09-08 16:11:23

相關問題