页面传值

来源:互联网 发布:淘宝宝贝没有展现词 编辑:程序博客网 时间:2024/05/08 17:41

     一.            几种页面之间的传值方法

1.  使用QueryString变量
    QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
    string s_url;
    s_url = "b.aspx?name=" + Label1.Text;
    Response.Redirect(s_url);
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
    Label2.Text = Request.QueryString["name"];
}

2. .  使用Application 对象变量
    Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
    Application["name"] = Label1.Text;
    Server.Transfer("b.aspx");
}

b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
    string name;
    Application.Lock();
    name = Application["name"].ToString();
    Application.UnLock();
}

 

简单的可以理解为Application储存的是服务端数据,任务人都可以改,为了防止多个人同时修改Application,所以要用Lock方法让其他人不可修改,等自己改完了,再用UnLock方法让其他人可以修改。
而Session储存的是客户端的数据,只有自己能改,所以就不需要锁定了。


3.  使用Session变量
    想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
    Session["name"] = Label.Text;
}

b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
    string name;
    name = Session["name"].ToString();
}

4.  使用Cookie对象变量
    这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
    HttpCookie cookie_name = new HttpCookie("name");
    cookie_name.Value = Label1.Text;
    Reponse.AppendCookie(cookie_name);
    Server.Transfer("b.aspx");
}

b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
    string name;
    name = Request.Cookie["name"].Value.ToString();
}

5.  使用Server.Transfer方法
    这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
a.aspx的C#代码
public string Name
{
    get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
    Server.Transfer("b.aspx");
}

b.aspx中C#代码
private void Page_Load(object sender, Event Args e)
{
    a newWeb;   //实例a窗体
    newWeb = (source)Context.Handler;
    string name;
    name = newWeb.Name;
}

 

二.asp几个内置对象的名称

ASP的特点是面向对象编程,它提供了功能强大的内部对象。其中常用的对象有:

Request

Response

Session

Application

Server

 

三.            javascript弹出确认框的函数

<script type="text/javascript" language="javascript">

<!--

function confirmAct()

{

 if(confirm('确定要执行此操作吗?'))

{

return true;

    }

    return false;

}

//-->

</script>
链接的地方这样写:<a href="test.html" onclick="return confirmAct();">删除</a>

警告(alert) 确认(confirm) 提问(prompt)
 

四.            ADO.NET中的五个主要对象

connection 连接对象
command 命令对象,指示要执行的命令和存储过程!
datareader是一个向前的只读的数据流。
dataadapter是功能强大的适陪器,支持增删改查的功能
dataset是一个数据级对象,相当与内存中的一张表或多张表!

 

 

五.服务器端删除提示的消息框如何写

ScriptManager.RegisterClientScriptBlock(UpdatePanel1,typeof(UpdatePanel),"ok","alert('Update OK!');", true);

Page.RegisterStartupScript("Messages", "<script>alert('" + MessageInfo + "')</script>");

Response.Redirect("selectPro.aspx");

 

六.            服务器端Codebehind方式时,如何注册前端javascript脚本,用什么对象的方法

odebehind是把程序代码和表现代码分开。

这应该是asp.net的编程模式,把逻辑代码和表现页面分离开来啦,表现页面也就是.aspx页面就是用Codebehind来指定它的逻辑代码页面,用Inherits来指定它指定它应用逻辑代码页面中哪个命名空间下的哪个类嘛。比如.aspx中一般都有下面类似的代码:
<%@Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="BusinessCard.WebForm1" %>
它就表示该aspx页面的逻辑代码页面为WebForm1.aspx.cs,它继承了该页面中BusinessCard命名空间下的WebForm1类。

 

七.基础部分

1.      OSI七层参考模型的名称?

网络七层包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中物理层、数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象;传输层、会话层、表示层和应用层则被称作主机层,是用户所面向和关心的内容。

2.      UDP连接和TCP连接有何异同?

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来.

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

 

3.      进程和线程分别怎么理解?

一个进程可以有多个线程,一个线程也可以同时为多个进程使用。
我们平常用电脑任务管理器里那个进程就是这个进程了,而线程则是更加具体更加小一级的操作.

线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。线程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。


4.      COM+环境的主要特性?

所谓COM(Componet Object Model,组件对象模型),是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。

COM+并不是COM的简单升级,COM+的底层结构仍然以COM为基础,它几乎包容了COM的所有内容,COM+综合了COM、DCOM和MTS这些技术要素,它把COM组件软件提升到应用层而不再是底层的软件结构,它通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此,COM+与操作系统的结合更加紧密

5.什么是NLB、什么是CLB?

网络负载平衡 (NLB) 服务增强了 Web、FTP、防火墙、代理、VPN 和其他关键任务服务器之类的 Internet 服务器应用程序的可用性和可伸缩性。

6.面向对象的思想主要包括什么?继承 多态 封装
● 封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
● 继承:子类拥有父类的所有数据和操作。
● 多态:一个程序中同名的不同方法共存的情况。
有两种形式的多态– 重载与重写。

 

7.应用程序域概述

以前使用进程边界来隔离在同一台计算机上运行的应用程序。每一个应用程序被加载到单独的进程中,这样就将该应用程序与在同一台计算机上运行的其他应用程序相隔离。

8. CTS、CLS、CLR分别作何解释?

CLR(公用语言运行时)
CLS(共语言规范)
CTS(通用类型系统)

CLB(Configurable Logic Block)可配置逻辑模块

 

9. 如何理解.net中的垃圾回收机制。

NET中的垃圾回收机制是引用程序对内存的回收和释放。当每次用new关键字创建一个对象时,运行库都要从托管堆中为其分配内存,因为空间是有限的,最终垃圾回收机制是要回收不用的内存的。已释放内存,重新使用。

 

1.

(1)面向对象的语言具有:继承性性、封装性、多态性。

(2)能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerator方法的类型。
2. 不定项选择:
(1) 以下叙述正确的是:
A. 接口中可以有虚方法。 B. 一个类可以实现多个接口。

C. 接口不能被实例化。 D. 接口中可以包含已实现的方法。

B、C (考对接口的理解)

(2) 从数据库读取记录,你可能用到的方法有:
A. ExecuteNonQuery B. ExecuteScalar
C. Fill D. ExecuteReader
B、C、D
3. 简述 private、 protected、 public、 internal 修饰符的访问权限。
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。

 

4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)
select top 10 from (select top 40 from A order by id)

解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

 

5. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。(C#语言)
public class MainClass
{
public static void Main()
{
    Console.WriteLine(Foo(30));
}
public static int Foo(int i)
{
  if (i <= 0)
    return 0;
  else if(i > 0 && i <= 2)
    return 1;
  else

return Foo(i -1) + Foo(i - 2);
}
}

7.ASP.net的身份验证方式有哪些?分别是什么原理?
答:

Forms 身份验证提供程序

提供有关如何使用您自己的代码创建应用程序特定的登录窗体并执行身份验证的信息。使用 Forms 身份验证的一种简便方法是使用 ASP.NET 成员资格和 ASP.NET 登录控件,它们一起提供了一种只需少量或无需代码就可以收集、验证和管理用户凭据的方法。

Passport 身份验证提供程序

提供有关由 Microsoft 提供的集中身份验证服务的信息,该服务为成员站点提供单一登录和核心配置

 

8.什么是SOAP,有哪些应用。
答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体

 

9. 软件开发的几个阶段

可行性分析-》需求分析-》编码-》测试-》维护-》结束。

需求分析-模块设计-数据流分析-编码-组装测试-评审-发布-维护

 

10.值类型和引用类型的区别

区别:
1、值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。
2、引用类型分配在托管堆上,引用类型的变量通常包含一个指向实例的指针,变量通过该指针来引用实例。
3、值类型继承自ValueType(注意:而System.ValueType又继承自System.Object);而引用类型继承自System.Object。
4、值类型变量包含其实例数据,每个变量保存了其本身的数据拷贝(副本),因此在默认情况下,值类型的参数传递不会影响参数本身;而引用类型变量保存了其数据的引用地址,因此以引用方式进行参数传递时会影响到参数本身,因为两个变量会引用了内存中的同一块地址。
5、值类型有两种表示:装箱与拆箱;引用类型只有装箱一种形式。我会在下节以专门的篇幅来深入讨论这个话题。
6、典型的值类型为:struct,enum以及大量的内置值类型;而能称为类的都可以说是引用类型。
7、值类型的内存不由GC(垃圾回收,Gabage Collection)控制,作用域结束时,值类型会自行释放,减少了托管堆的压力,因此具有性能上的优势。例如,通常struct比class更高效;而引用类型的内存回收,由GC来完成,微软甚至建议用户最好不要自行释放内存。
8、值类型是密封的(sealed),因此值类型不能作为其他任何类型的基类,但是可以单继承或者多继承接口;而引用类型一般都有继承性。
9、值类型不具有多态性;而引用类型有多态性。
10、值类型变量不可为null值,值类型都会自行初始化为0值;而引用类型变量默认情况下,创建为null值,表示没有指向任何托管堆的引用地址。对值为null的引用类型的任何操作,都会抛出NullReferenceException异常。
11、值类型有两种状态:装箱和未装箱,运行库提供了所有值类型的已装箱形式;而引用类型通常只有一种形式:装箱。 

 

1.    在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
答案: this.Handle;

2.    在.net(C# or vb.net)如何启动另一个程序。
答案:System.Diagnostics.Process.Start(@"C:\catchMe.exe");

3.    new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。

4.    如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);

5.    datagrid.datasouse可以连接什么数据源
dataset,datatable,dataview , IList

 

6.    概述反射和序列化
   反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
   序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。

 

7.    概述o/r mapping 的原理
利用反射,配置 将类于数据库表映射

 

8.    用sealed修饰的类有什么特点
   sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
   密封类不能同时为抽象类。    
   sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。

 

9.    详述.NET里class和struct的异同! class:放在 ? struct放在?
struct值传递:
  类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。

 

10.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
  远程逻辑调用,remoing接口只能用在.net中

 

 

11.什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?

托管代码

使用基于公共语言运行库的语言编译器开发的代码称为托管代码;托管代码具有许多优点,例如:跨语言集成、跨语言异常处理、增强的安全性、版本控制和部署支持、简化的组件交互模型、调试和分析服务等。

装箱和拆箱

装箱和拆箱使值类型能够被视为对象。对值类型装箱将把该值类型打包到 Object 引用类型的一个实例中。这使得值类型可以存储于垃圾回收堆中。拆箱将从对象中提取值类型。

重载

每个类型成员都有一个唯一的签名。方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。只要签名不同,就可以在一种类型内定义具有相同名称的多种方法。当定义两种或多种具有相同名称的方法时,就称作重载。

CTS通用类型系统 (common type system)

一种确定公共语言运行库如何定义、使用和管理类型的规范。

CLR公共语言运行库

.NET Framework 提供了一个称为公共语言运行库的运行时环境,它运行代码并提供使开发过程更轻松的服务。

CLS公共语言规范

要和其他对象完全交互,而不管这些对象是以何种语言实现的,对象必须只向调用方公开那些它们必须与之互用的所有语言的通用功能。为此定义了公共语言规范 (CLS),它是许多应用程序所需的一套基本语言功能。

强类型

C# 是强类型语言;因此每个变量和对象都必须具有声明类型。

11.活动目录的作用

Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。

12.解释一下UDDI、WSDL的意义及其作用

 

 

UDDI

统一描述、发现和集成协议(UDDI, Universal Description, Discovery and Integration)是一套基于Web的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准。UDDI 提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现。

WSDL

WSDL描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;

l         服务 URL 和命名空间

l         网络服务的类型(可能还包括 SOAP 的函数调用,正像我所说过的,WSDL 足够自如地去描述网络服务的广泛内容)

l         有效函数列表

l         每个函数的参数

l         每个参数的类型

l         每个函数的返回值及其数据类型

应用程序池

应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。

重写:

在父类中定义了一个方法如: public string GetName(){ return "Name"}方法,在派生类中再次定义了一个同样的方法public string GetName(){ return "Value"} 则派生类覆盖了父类的方法

覆盖重写的区别:

重写:
public class C1
{
public virtual string GetName()
{
return "Name";
}
}

public class C2:C1
{
public override string GetName()
{
return "Value";

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rmak2008/archive/2008/12/16/3531671.aspx                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        

原创粉丝点击