silverlight+wcf 项目 silverlight获得web程序的参数
silverlight 可以通过属性InitParams 获得参数,如果参数是动态的需要web程序传递的,具体操作如下:
web程序后台:AppID,USERID需要的参数
this.frmReport.Attributes["src"] = String.Format("../../SilverlightApplicationTestPage.aspx?USERNAME={0}&USERID={1}", "张三", "123456");
silverlight项目会生产一个 测试页面文件:SilverlightApplicationTestPage.aspx,修改之后的代码如下:
<%@ Page Language="c#" AutoEventWireup="true" %>
<!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 id="Head1" runat="server">
<title>SilverlightApplication</title>
<style type="text/css">
html, body
{
height: 100%;
overflow: auto;
}
body
{
padding: 0;
margin: 0;
}
#silverlightControlHost
{
height: 100%;
text-align: center;
}
</style>
<script type="text/javascript" src="Silverlight.js"></script>
<script type="text/javascript">
function onSilverlightError(sender, args) {
var appSource = "";
if (sender != null && sender != 0) {
appSource = sender.getHost().Source;
}
var errorType = args.ErrorType;
var iErrorCode = args.ErrorCode;
if (errorType == "ImageError" || errorType == "MediaError") {
return;
}
var errMsg = "Silverlight 应用程序中未处理的错误 " + appSource + "\n";
errMsg += "代码: " + iErrorCode + " \n";
errMsg += "类别: " + errorType + " \n";
errMsg += "消息: " + args.ErrorMessage + " \n";
if (errorType == "ParserError") {
errMsg += "文件: " + args.xamlFile + " \n";
errMsg += "行: " + args.lineNumber + " \n";
errMsg += "位置: " + args.charPosition + " \n";
}
else if (errorType == "RuntimeError") {
if (args.lineNumber != 0) {
errMsg += "行: " + args.lineNumber + " \n";
errMsg += "位置: " + args.charPosition + " \n";
}
errMsg += "方法名称: " + args.methodName + " \n";
}
throw new Error(errMsg);
}
//加载参数
function WindOnLoad() {
var xmlDoc;
var initParamsString = '';
var url = location.href;
var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
for (var i = 0; i < paraString.length; i++) {
initParamsString += paraString[i];
if (i != paraString.length) {
initParamsString += ",";
}
}
SetInitParams(initParamsString);
}
//构造页面
function SetInitParams(initParamsString) {
var silverlightControlHtml = ' <object id="silverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">';
silverlightControlHtml += '<param name="source" value="ClientBin/SilverlightApplication2.xap" />';
silverlightControlHtml += '<param name="onerror" value="onSilverlightError" />';
silverlightControlHtml += '<param name="minRuntimeVersion" value="5.0.61118.0" />';
silverlightControlHtml += ' <param name="autoUpgrade" value="true" />';
silverlightControlHtml += '<param id="InitParams" name="InitParams" value="' + initParamsString + '"/>';
silverlightControlHtml += '</object>';
silverlightControlHtml += '<iframe id="_sl_historyFrame" style="visibility: hidden; height: 0; width: 0; border: 0px"></iframe>';
document.getElementById("silverlightControlHost").innerHTML = silverlightControlHtml;
}
window.onload = WindOnLoad;
</script>
</head>
<body>
<div id="silverlightControlHost">
</div>
</body>
</html>
silverlight程序会生成app.xaml 文件作为起始页面,代码如下:
public App()
{
this.Startup += this.Application_Startup;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
//在Application_Startup方法中得到web程序的参数,具体代码如下:
private void Application_Startup(object sender, StartupEventArgs e)
{
paras = e.InitParams;
USERNAME= e.InitParams["USERNAME"];
USERID = e.InitParams["USERID"];
this.RootVisual = new BeginHome(USERNAME, USERID);//跳转到其他页面
}
第二种:
在Application_Startup方法中得到web程序的参数,具体代码如下:
private void Application_Startup(object sender, StartupEventArgs e){
IDictionary<String, String> paras = System.Windows.Browser.HtmlPage.Document.QueryString;
AppID = paras["APPID"];
strChartName = paras["ChartName"];
…………}
silverlight+wcf 项目 silverlight获得web程序的参数的更多相关文章
- [SL] Silverlight + WCF Demo项目
I:项目描述:利用 Silverlight+WCF 技术,模拟资源管理器(如图1)功能,通过地址栏输入本地文件夹路径,然后将解析出来的该目录下所有文件(夹)存储到数据库中,然后再加载到界面上显示出来: ...
- [silverlight—wcf]参数:调试资源字符串不可用,秘钥和参数通常提供足够的信息用以诊断问题。
这段时间在做一个项目,有一项需求是上传,经过思考之后,决定采取Silverlight+WCF的方式做上传操作.就在项目做完了之后,本地测试也都没问题,发布到服务器上的时候,顿时就出现故障了.在选择文件 ...
- silverlight wcf mvvm
近期工作比較忙.也没有时间发表新内容,今天有点时间,就顺便写点,说说近期开发的一套系统心得. 我刚去这个公司已经将前端确定要用Silverlight,我不知道为什么要选择这个,或许是为以后转C/S系统 ...
- docker简单入门之使用docker容器部署简单的java web开源项目jpress博客程序
一.在centos7.3上安装docker 前置条件 x86_64-bit 系统 kernel 3.10+ .检查内核版本,返回的值大于3.10即可 [root@node1 ~]# uname -r ...
- WCF 项目应用连载[2] - 创建Lig日志系统
WCF 项目应用连载[1] - 索引 - 轻量级的Log系统 - Lig Sample -序 现在我们创建一个Lig工程 - Litelog 2.1 创建Lig服务 _________________ ...
- 旧 WCF 项目迁移到 asp.net core + gRPC 的尝试
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能第一时间发现问题. 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行:一方面,AWS对Li ...
- web程序的路径笔记
"/"与”\“区别:”/“是unix系统区分文件层级的标志,因为当前web应用程序在服务器端大都使用基于unix系统开发的操作系统,所以web程序包括浏览器里url都遵以”/“来区 ...
- .NET WEB程序员需要掌握的技能
本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...
- (转)对《30个提高Web程序执行效率的好经验》的理解
阅读了博客园发布的IT文章<30个提高Web程序执行效率的好经验>,这30条准则对我们web开发是非常有用的,不过大家可能对其中的一些准则是知其然而不知其所以然. 下面是我对这些准则的理解 ...
随机推荐
- C#进程与线程
public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { / ...
- 转自:Tsihang 三层网络设备对于IP报文的分片和重组处理原理
三层网络设备对于IP报文的分片和重组处理原理 对于网络分片,我一年前就想整理出来,虽然说网络上的资料很多,但是真正掌握精髓的除非真正做过分片程序,不然很难将协议栈整体联系起来理解.这篇文章,包括设计分 ...
- 文成小盆友python-num4 装饰器,内置函数
一 .python 内置函数补充 chr() -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.z ...
- HTML&CSS基础学习笔记1.11—导航栏
上文我们介绍到的<a>标签,由于<a>标签可以用来跳转,所以我们可以拿<a>标签来生成网页的导航栏. 其实在实际运用中,<a>标签就经常会被用来生成导航 ...
- C 产生随机码
#include<stdio.h>#include<malloc.h>#include<conio.h>#include<stdlib.h>#inclu ...
- pod应用--备用
一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库. 二.安装 由于 ...
- Lintcode--005(最长公共子序列)
Given two strings, find the longest common subsequence (LCS). 最长公共子序列 Your code should return th ...
- cf Sereja and Array
http://codeforces.com/contest/315/problem/B #include <cstdio> #include <cstring> #includ ...
- 智能卡 APTU命令
一条命令APDU含有一个头标和一个本体.本体可有不同长度,或者在相关数据字段为空时,整个可以不存 在. 头标由四个数据元组成,它们是类CLA(ClAss)字节,命令INS(INStructic,n)字 ...
- STL 查找vector容器中的指定对象:find()与find_if()算法
1 从vector容器中查找指定对象:find()算法 STL的通用算法find()和find_if()可以查找指定对象,参数1,即首iterator指着开始的位置,参数2,即次iterator指着停 ...