程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#後台程序與HTML頁面中JS方法互調(功能類似於Ajax中的DWR)

C#後台程序與HTML頁面中JS方法互調(功能類似於Ajax中的DWR)

編輯:C#入門知識

此方法適用於 C#中嵌入WebBrowser(浏覽器) 通過浏覽器中加載的頁面與C#的後台代碼進行交互。

一、C#程序

1、在C#窗體中添加WebBrowser(浏覽器),將頁面的URL添加到浏覽器中。

2、窗體代碼添加 using System.Runtime.InteropServices;//和Html頁面交互使用

在類的上一行添加 [ComVisible(true)]//和Html頁面交互使用

在類的構造其中添加

this.webB.ObjectForScripting = this; //和Html頁面交互使用

如:

using System.Runtime.InteropServices;

namespace slgdjb {     [ComVisible(true)]     public partial class Frm_Index : Form     {         public Frm_Index()         {             InitializeComponent();             this.webB.ObjectForScripting = this;          }

   }

}

3、添加供Html頁面調用的方法

如:

該方法的方法名即為Html頁面JS中所要調用的方法名 

public string myAction(object para) {   //方法內容在此寫           }

4、C#程序調用Html頁面JS方法

首先要獲得Html頁面的Document,然後再調用Html頁面的JS方法

如:

HtmlDocument doc = webB.Document; string[] objArray = new string[2]; objArray[0] = "a";

objArray[1] = "b"; //調用Html頁面js方法,JSMonth為JS方法名,objArray為傳遞的參數。

//JS中不能接收對象,但可以接收整形、字符串、字符串數組。 doc.InvokeScript("JSMonth",objArray);

 

二、Html頁面中JS方法調用C#方法

1、在Html頁面JS中調用C#程序的方法,若C#中的方法有返回值,則JS可以得到。

如:

//myAction為C#中方法的方法名,para為該方法的參數。

var str = window.external.myAction(para); 

2、供C#調用的Html頁面中JS的方法

該方法的方法名即為C#中所要調用的方法名  obj即為要傳遞的參數。若傳遞的參數為數組,則在JS

方法中可直接使用arguments[index(數組參數編號)]表示數組的參數值。arguments為JS默認數組參數,其好處在於JS方法不必寫傳遞的參數。

function JSMonth(obj){

//若obj為數組,則obj[0]等價於arguments[0];其方法名可改寫為JSMonth()

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved