Silverlight融合ajax實(shí)現(xiàn)前后臺(tái)數(shù)據(jù)交互
下面介紹的就是用Silverlight (微軟在07 年9 月將WPF/E 更名為Silverlight )融合ajax 做的審批流程。界面上的審批流程從下向上包括3部分,部門(mén)審批,科技處審批,廠長(zhǎng)審批。實(shí)現(xiàn)的功能是可以定制審批流程,比如審批流程是部門(mén)審批--> 廠長(zhǎng)審批,也可以定制成科技處審批--> 廠長(zhǎng)審批。定制的數(shù)據(jù)存在后臺(tái)xml 文件中。
前臺(tái)Silverlight 表現(xiàn)層語(yǔ)言xaml , 后臺(tái)服務(wù)器腳本語(yǔ)言C# ,數(shù)據(jù)存儲(chǔ)格式xml ,中間數(shù)據(jù)傳輸技術(shù)ajax 。
.Net中嵌入Silverlight Page 的方法是在aspx 中調(diào)用js 函數(shù)傳遞xaml 文件相對(duì)于服務(wù)器的路徑,如下:
<div style="width: 662px;height: 622px" id="SilverlightControlHost" >
<script type="text/javascript"><!--
createsL( 'workflow.xaml' );
// --></script>
</div>
函數(shù)調(diào)用Silverlight 的createObjectEx 方法指定xaml source 、parentElement 、events 等,相應(yīng)代碼如下:
function createSL(xamlpage)
{
Silverlight.createObjectEx({
source: xamlpage,
parentElement: document.getElementById("SilverlightControlHost"),
id: "SilverlightControl",
properties: {
width: "100%",
height: "100%",
version: "1.1",
enableHtmlAccess: "true"
},
events: {
onLoad:OnLoaded
}
});
// Give the keyboard focus to the Silverlight control by default
document.body.onload = function() {
var silverlightControl = document.getElementById('SilverlightControl');
if (silverlightControl)
silverlightControl.focus();
}
}
還要做的工作是在xaml 后臺(tái)cs 文件中[ Scriptable ] 表現(xiàn)層WPF 類(lèi)(當(dāng)初是Cavas),將該類(lèi)注冊(cè)為可腳本化對(duì)象(RegisterScriptableObject)和可腳本化event ,并且在js 的events 設(shè)定表現(xiàn)層中的event ,實(shí)現(xiàn)方法如下:
xaml代碼:
[Scriptable]
public partial class workflow : Canvas
{
public workflow()
{
WebApplication.Current.RegisterScriptableObject("wpfe", this);
}
......
[Scriptable]
public event EventHandler workflowFunc;
}
js代碼:
function OnLoaded(sender,args)
{
sender.Content.wpfe.workflowFunc = onWorkflow;
}
另外,如果js 調(diào)用xaml 中的可腳本化函數(shù)的方法是
var control = document.getElementById("SilverlightControl");
var onReturnWfResult = control.Content.wpfe;
將xaml 中數(shù)據(jù)傳輸給后臺(tái)處理就用到ajax 技術(shù)了,在本例中是在onWorkflow 事件中定義XMLHttpRequest,然后通過(guò)該ajax 對(duì)象將數(shù)據(jù)傳遞到后臺(tái)。該例中的后臺(tái)腳本語(yǔ)言是C# ,數(shù)據(jù)接收方法是Request.Params 。
- SpringMVC前端和后端數(shù)據(jù)交互總結(jié)
- Spring MVC前端與后端5種ajax交互方法【總結(jié)】
- jQuery Ajax前后端使用JSON進(jìn)行交互示例
- SpringMVC實(shí)現(xiàn)前端后臺(tái)交互傳遞數(shù)據(jù)
- 利用Node.js+Koa框架實(shí)現(xiàn)前后端交互的方法
- 原生node.js案例--前后臺(tái)交互
- JavaEE實(shí)現(xiàn)前后臺(tái)交互的文件上傳與下載
- 實(shí)現(xiàn)前后端數(shù)據(jù)交互方法匯總
- 前后臺(tái)交互過(guò)程中json格式如何解析以及如何生成
- 前端ajax的各種與后端交互的姿勢(shì)
相關(guān)文章
如何將asp.net core程序部署到Linux服務(wù)器
這篇文章主要介紹了將asp.net core程序部署到Linux服務(wù)器上的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09asp.net實(shí)現(xiàn)的MVC跨數(shù)據(jù)庫(kù)多表聯(lián)合動(dòng)態(tài)條件查詢功能示例
這篇文章主要介紹了asp.net實(shí)現(xiàn)的MVC跨數(shù)據(jù)庫(kù)多表聯(lián)合動(dòng)態(tài)條件查詢功能,結(jié)合實(shí)例形式較為詳細(xì)分析了asp.net基于MVC架構(gòu)的跨數(shù)據(jù)庫(kù)多表聯(lián)合查詢功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-02-02在Apache環(huán)境下成功的運(yùn)行ASP.NET的注意事項(xiàng)
在Apache環(huán)境下成功的運(yùn)行ASP.NET的注意事項(xiàng)...2007-08-08Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺(tái)包
這篇文章主要為大家詳細(xì)介紹了Asp.NetCore1.1版本去掉project.json后如何打包生成跨平臺(tái)包 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06讀取XML并綁定至RadioButtonList實(shí)現(xiàn)思路及演示動(dòng)畫(huà)
讀取XML的文檔,可以使用System.Data.DataSet類(lèi)別中的ReadXml()方法,在aspx網(wǎng)頁(yè)上拉一個(gè)RadioButtonList控件,用來(lái)顯示XML的數(shù)據(jù),接下來(lái),用DataSet去讀取剛才寫(xiě)好的獲取XML文件的屬性,即可完成2013-01-01四個(gè)常用的.NET的SQLHELPER方法實(shí)例
這篇文章主要介紹了四個(gè)常用的.NET的SQLHELPER方法,在WinForm的實(shí)際開(kāi)發(fā)中比較常用,需要的朋友可以參考下2014-08-08asp.net Javascript 的幾種寫(xiě)法與提示
asp.net Javascript 的幾種寫(xiě)法與提示,需要的朋友可以參考下。2009-10-10