zoukankan      html  css  js  c++  java
  • .net网站与Winform窗体的数据交互(JS调用Winform后台方法实现)

    前台页面:WebForm2.aspx

    <!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 language="javascript" type="text/javascript">
            //获取WinForm穿过来的值
            function getWinFormValue(winFormValue) {
                document.getElementById("spWinFormValue").innerHTML = winFormValue;
            }
            //调用WinForm里的方法将值传过去
            function SetWinFormValue(WebFormValue) {

                //后台页面的方法 Call
                window.external.Call(WebFormValue);
            }

        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            WinForm传过来的值:<span id="spWinFormValue"></span>
            <br />
            请输入值:<asp:TextBox ID="txtValue" runat="server"></asp:TextBox>
            <asp:Button ID="btn" runat="server" Text="点击我将值传入WinForm" OnClientClick="var v=document.getElementById('txtValue').value;alert(v);SetWinFormValue(v);return false;"
                Width="142px" onclick="btn_Click" />
        </div>
        </form>
    </body>
    </html>

    -------------------------------------------------------------------------------------------------------

    Form窗体后台代码:Form2.cs

    namespace WindowsFormsApp
    {

    //申名托管类型,对com是可见的
        [System.Runtime.InteropServices.ComVisible(true)]
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }

            private void button2_Click(object sender, EventArgs e)
            {
                this.wbWeb.Navigate(string.Format("javascript:getWinFormValue('{0}');void(0);", this.textBox1.Text));
            }

              //前台js调用的方法

            public void Call(string WebFormValue)
            {
                this.label1.Text = WebFormValue;
            }

            private void Form2_Load(object sender, EventArgs e)
            {

             //此窗体可以通过wbweb控件里面的脚本进行访问
              wbWeb.ObjectForScripting = this;
            }
        }
    }

    此方法要比前文的 使用webservice实现要简便性能要好!

  • 相关阅读:
    Python numpy.transpose 详解
    如何理解张量tensor
    tensorflow中张量的理解
    Theano入门——CIFAR-10和CIFAR-100数据集
    阻止form表单提交的问题
    webp图片优化
    Css控制网页变灰
    express-session相关用法
    REM+SVG Sprite,web app案例
    HTML 5 Audio/Video DOM canplaythrough 事件在移动端遇到的坑
  • 原文地址:https://www.cnblogs.com/xiaowei0705/p/2066060.html
Copyright © 2011-2022 走看看