国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Silverlight融合ajax實現(xiàn)前后臺數(shù)據(jù)交互

2020-01-18 01:17:09
字體:
供稿:網(wǎng)友
事出偶然,本來公司強(qiáng)調(diào)的是用WCF 做項目審批流程,WPF /E 增強(qiáng)用戶體驗;由于個人的無知與偷懶,我產(chǎn)生了天真的想法:用WPF/E 來做審批流程,這不是一舉兩得嗎。
下面介紹的就是用Silverlight (微軟在07 年9 月將WPF/E 更名為Silverlight )融合ajax 做的審批流程。界面上的審批流程從下向上包括3部分,部門審批,科技處審批,廠長審批。實現(xiàn)的功能是可以定制審批流程,比如審批流程是部門審批--> 廠長審批,也可以定制成科技處審批--> 廠長審批。定制的數(shù)據(jù)存在后臺xml 文件中。
前臺Silverlight 表現(xiàn)層語言xaml , 后臺服務(wù)器腳本語言C# ,數(shù)據(jù)存儲格式xml ,中間數(shù)據(jù)傳輸技術(shù)ajax 。
.Net中嵌入Silverlight Page 的方法是在aspx 中調(diào)用js 函數(shù)傳遞xaml 文件相對于服務(wù)器的路徑,如下:
復(fù)制代碼 代碼如下:

<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)代碼如下:
復(fù)制代碼 代碼如下:

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 后臺cs 文件中[ Scriptable ] 表現(xiàn)層WPF 類(當(dāng)初是Cavas),將該類注冊為可腳本化對象(RegisterScriptableObject)和可腳本化event ,并且在js 的events 設(shè)定表現(xiàn)層中的event ,實現(xiàn)方法如下:
xaml代碼:
[Scriptable]
復(fù)制代碼 代碼如下:

public partial class workflow : Canvas
{
public workflow()
{
WebApplication.Current.RegisterScriptableObject("wpfe", this);
}
......
[Scriptable]
public event EventHandler workflowFunc;
}

js代碼:
復(fù)制代碼 代碼如下:

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ù)傳輸給后臺處理就用到ajax 技術(shù)了,在本例中是在onWorkflow 事件中定義XMLHttpRequest,然后通過該ajax 對象將數(shù)據(jù)傳遞到后臺。該例中的后臺腳本語言是C# ,數(shù)據(jù)接收方法是Request.Params 。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海安县| 平江县| 古丈县| 德庆县| 曲水县| 马龙县| 胶州市| 桐梓县| 无极县| 夏津县| 固原市| 平和县| 凤翔县| 高雄市| 肃北| 曲松县| 西贡区| 同德县| 宁远县| 灵璧县| 宜良县| 奈曼旗| 涪陵区| 柘荣县| 桑植县| 崇左市| 江陵县| 荔浦县| 富源县| 洛川县| 和田市| 大埔县| 安图县| 河北区| 平远县| 班戈县| 临潭县| 石河子市| 山阴县| 阜宁县| 曲阜市|