在ASP.net按钮上单击使用VB脚本填充ASP.Net文本框

时间:2009-09-08 16:03:52

标签: asp.net vbscript

我有一个vbscript函数,它将从ActiveX控件IntegriSign1中获取一个值,如下面的代码所示。

我的asp.net页面中有一个ASP.net Texbox和ASP.net按钮,如下面的代码所示。

来自我的GetSignData()函数如何使用SignData Value填充txtIntegri1

由于

<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

2 个答案:

答案 0 :(得分:2)

你做不到。文本框中的Visible="false"属性意味着它根本不会呈现为html。就您的浏览器而言,它不存在。

但是把它放在一边(假设你有其他代码可以解决这个问题),你可以使用.ClientID属性引用控件的ID,正如Ahmad Mageed建议的那样。

答案 1 :(得分:0)

您可以通过修改VBScript来引用文本框的ID,以包含以下内容:

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

将其分配给变量以引用文本框,然后为其指定所需的值。

编辑:正如Joel所说,您的文本框的当前可见性阻止了对它的任何访问。要使上述工作正常,您需要显示文本框。


这是我的工作示例。一个区别是onClick事件我不得不删除分号“;”让它触发。如果您启动一个新项目并将其删除,除了顶部的“&lt;%@ 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>