当前位置:  编程技术>.net/c#/asp.net
本页文章导读:
    ▪ASP.NET 前后台调用方法      1.JavaScript访问C#函数 2.JavaScript访问C#变量 3.C#中访问JavaScript的已有变量 4.如何在C#中访问JavaScript函数 JavaScript访问C#函数 方法一、 1、首先建立一个按钮,在后台将调用或.........
    ▪Csharp: Calling Output Parameters and Return Values in ADO.NET       1 --sql code Geovin Du 2 IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Select_AssessmentProjectSetSearch') 3 DROP PROCEDURE proc_Select_AssessmentProjectSetSearch 4 GO 5 CREATE PROCEDURE proc_Select_AssessmentProjectSetSearch 6 ( 7 @Ass.........
    ▪C#一步一步实现插件框架的示例(二)      前一篇链接:C#一步一步实现插件框架的示例(一)今天我们再接着前一篇来完善插件功能。在前一篇中我们将生成插件按钮的代码直接写在了WorkBench中,无法体现插件式开发的优越性,现在我.........

[1]ASP.NET 前后台调用方法
    来源:    发布时间: 2013-10-28

1.JavaScript访问C#函数 
2.JavaScript访问C#变量 
3.C#中访问JavaScript的已有变量 
4.如何在C#中访问JavaScript函数 
JavaScript访问C#函数 
方法一、 
1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 
2、在前台写一个js函数,内容为document.getElementById("btn1").click(); 
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数; 
方法二、 
1. 函数声明为public 或protected 

代码如下:

public string Hello()
{
return("Hello World");
}

 


2、在html里用<%=fucntion()%>可以调用 

代码如下:

<html xmlns="http://www.w3.org/1999/xhtml%22>
<head runat="server">
<title>Untitled Page</title>
<script language="javascript" type="text/javascript">
function say()
{
var strHello = "<%=Hello()%>";
alert(strHello);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="say();" />
</div>
</form>
</body>
</html>

 


方法三、 

代码如下:
<script language="javascript">
function __doPostBack(eventTarget, eventArgument)
{
var frontForm = document.Form1; //指runat=server的form
frontForm.__EVENTTARGET.value = eventTarget;
frontForm.__EVENTARGUMENT.value = eventArgument;
frontForm.submit();
}
</script>
<input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">

JavaScript中访问C#变量 
方法一:1、通过页面上隐藏域访问<input id="xx" type="hidden" runat="server"> 
方法二:1、如后台定义了PUBLIC STRING N;前台js中引用该变量的格式为'<%=n%>'或"+<%=n%>+" 
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本 
"<script language='javascript'>var temp=" + tmp + "</script>" 
tmp是后台变量,然后js中可以直接访问temp获得值。 
C#中访问JavaScript的已有变量 
方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中; 
2、后台用request["id"]来获取值; 
方法二:可以用cookie或session 
C#中访问JavaScript函数 
方法一:1、Page.RegisterStartupScript("ggg","<script>SetVisible(1);</script>"); 
方法二:使用Literal类,然后 

代码如下:
private void Button2_Click(object sender, System.EventArgs e)
{
string str;
str="<script language='javascript'>";
str+="selectRange()";
str+="</script>";
//Literal1.Visible=true;
Literal1.Text=str;
}

 



本文链接


    
[2]Csharp: Calling Output Parameters and Return Values in ADO.NET
    来源:    发布时间: 2013-10-28
1 --sql code Geovin Du
2 IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Select_AssessmentProjectSetSearch')
3 DROP PROCEDURE proc_Select_AssessmentProjectSetSearch
4 GO
5 CREATE PROCEDURE proc_Select_AssessmentProjectSetSearch
6 (
7 @AssessmentProjectSetJobType Uniqueidentifier, --考核職位類型
8 @AssessmentProjectSetUidKey nvarchar(2000) output --考核項目
9 )
10 AS
11 declare @sql nvarchar(4000),@where nvarchar(4000)--,@AssessmentProjectSetUidKey nvarchar(4000)
12 set @where=''
13 select @AssessmentProjectSetUidKey=cast(AssessmentProjectSetUidKey as nvarchar(4000)) from AssessmentProjectSet where AssessmentProjectSetJobType=@AssessmentProjectSetJobType
14 set @sql='SELECT * FROM AssessmentProjectList where AssessmentProjectID in('
15 if(@AssessmentProjectSetUidKey IS null or @AssessmentProjectSetUidKey='')
16 begin
17 set @AssessmentProjectSetUidKey='1'
18 SET @where=@AssessmentProjectSetUidKey
19 end
20 else
21 begin
22 set @where=@AssessmentProjectSetUidKey
23 end
24 --print @AssessmentProjectSetUidKey
25 set @sql=@sql+@where+')'
26 --print @sql
27 exec (@sql)
28 GO
29
30 --測試
31 declare @s nvarchar(2220)
32 exec proc_Select_AssessmentProjectSetSearch '7606598a-34da-43e3-a107-950ae724b80d',@s output
33 select @s
34
35 ---
36 IF EXISTS (SELECT * FROM sysobjects WHERE [name] = 'proc_Select_AssessmentProjectSetReturnSearch')
37 DROP PROCEDURE proc_Select_AssessmentProjectSetReturnSearch
38 GO
39 CREATE PROCEDURE proc_Select_AssessmentProjectSetReturnSearch
40 (
41 @AssessmentProjectSetJobType Uniqueidentifier, --考核職位類型
42 @AssessmentProjectSetUidKey nvarchar(2000) output --考核項目
43 )
44 AS
45 declare @sql nvarchar(4000),@where nvarchar(400
    
[3]C#一步一步实现插件框架的示例(二)
    来源:    发布时间: 2013-10-28

前一篇链接:C#一步一步实现插件框架的示例(一)

今天我们再接着前一篇来完善插件功能。在前一篇中我们将生成插件按钮的代码直接写在了WorkBench中,无法体现插件式开发的优越性,现在我们来对其进行分离。

首先对WorkBench类中的构造函数进行修改,删除原来的生成按钮功能的函数,改变后如下:

public WorkBench()
{
InitializeComponent();
this.Controls.Add(ToolBar);
Application.Idle += new EventHandler(Application_Idle);
LoadDlls();
}

前一篇中对插件所标识的功能直接在构造函数中写死了。现在我们使用反射的方式来将其进行分离,我们将插件单独编译成一个DLL,当然一个DLL中可以包含多个插件,也可以一个DLL一个插件。由于在应用程序目录中可能会有很多其他的DLL,所以我们在这里约定包含有插件的DLL命名规则为:*.addin.dll,这样我们就只载入符合这种命名规则的DLL。

void LoadDlls()
{
//获取所有符合命名规则的DLL
var files = Directory.GetFiles(Application.StartupPath, "*.addin.dll");
for (int i = 0; i < files.Length; i++)
{
LoadAddin(files[i]);
}
}

private void LoadAddin(string path)
{
//通过反射,获取DLL中的类型,并遍历所有为AbstractCommand子类的类,因为我们的插件都继承于AbstractCommand
Assembly assembly = Assembly.LoadFrom(path);
Type[] types = assembly.GetTypes();
foreach (var t in types)
{
var obj = assembly.CreateInstance(t.ToString());
if (obj is AbstractCommand)
{
AddButton((AbstractCommand)obj);
}
}
}

 

由于DLL中可能包含有不是插件的类,所以我们通过: if (obj is AbstractCommand)来判断,因为我们的插件都是继承于AbstractCommand类,然后就调用AddButton函数根据传入的AbstractCommand的子类来生成工具栏的按钮:

void AddButton(AbstractCommand info)
{
ToolBarButton t = new ToolBarButton(info);
this.ToolBar.Items.Add(t);
list.Add(t);
}

关于ToolBarButton类请查看上一篇介绍或者源码。

然后我们将上一篇中的test类移出,新建一个DLL,参考到本项目,编译输出名称为:*.addin.dll,将其输出目录设置到相同的目录。运行即可自动生成对应的按钮。

如中我们将所生成的*.addin.dll拷贝多个到当前目录,如:td1.addin.dll    td2.addin.dll,再运行程序,程序会发现有三个插件,生成三个对应的按钮,只是他们的功能都是相同的。

最后附上源代码:http://www.kuaipan.cn/file/id_2334499409027889.htm

不知道在哪里上传文件,请朋友们指点。

下一篇介绍如何生成MDI窗口

 

本文链接


    
最新技术文章:
▪C#通过IComparable实现ListT.sort()排序
▪C#实现对Json字符串处理实例
▪Winform实现抓取web页面内容的方法
▪Winform实现将网页生成图片的方法
▪C#控制台程序中处理2个关闭事件的代码实例
▪WinForm实现同时让两个窗体有激活效果的特效...
▪WinForm实现拦截窗体上各个部位的点击特效实...
▪用C#的params关键字实现方法形参个数可变示例
▪C#判断某程序是否运行的方法
▪C#验证码识别基础方法实例分析
▪C#通过WIN32 API实现嵌入程序窗体
▪C#实现获取鼠标句柄的方法
▪C#事件处理和委托event delegate实例简述
▪C#获取程序文件相关信息的方法
▪C#中的除法运算符与VB.NET中的除法运算符
▪ASP.NET MVC 5使用X.PagedList.Mvc进行分页教程(PagedLi...
▪Base64编码解码原理及C#编程实例
▪C#实现的优酷真实视频地址解析功能(2014新算...
▪C#和SQL实现的字符串相似度计算代码分享
▪C#使用Word中的内置对话框实例
▪C#反射之基础应用实例总结
▪C#生成单页静态页简单实例
▪C#实现SMTP邮件发送程序实例
▪C#实现随鼠标移动窗体实例
▪C#使用GDI+创建缩略图实例
▪C#实现通过模板自动创建Word文档的方法
▪C#中Response.Write常见问题汇总
▪C#中多态、重载、重写区别分析
▪WinFrom中label背景透明的实现方法
▪C#中out保留字用法实例分析
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3