博文

[置顶] Request.ServerVariables大全(2007-08-15 18:22:00)

摘要:Request.ServerVariables大全 Request.ServerVariables大全 ServerVariables 集合检索预定的环境变量。   语法 ASP.NET语法:   Request.ServerVariables [int index]; Request.ServerVariables [string name];asp语法:Request.ServerVariables (server environment variable); 参数 服务器环境变量 指定要检索的服务器环境变量名。可以使用下面列出的值。 变量  说明  ALL_HTTP  客户端发送的所有 HTTP 标题文件。  ALL_RAW  检索未处理表格中所有的标题。ALL_RAW 和 ALL_HTTP 不同,ALL_HTTP 在标题文件名前面放置 HTTP_ prefix,并且标题名称总是大写的。使用 ALL_RAW 时,标题名称和值只在客户端发送时才出现。  APPL_MD_PATH  检索 ISAPI DLL 的 (WAM) Application 的元数据库路径。  APPL_PHYSICAL_PATH  检索与元数据库路径相应的物理路径。IIS 通过将 APPL_MD_PATH 转换为物理(目录)路径以返回值。  AUTH_PASSWORD  该值输入到客户端的鉴定对话中。只有使用基本鉴定时,该变量才可用。  AUTH_TYPE  这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。  AUTH_USER  未被鉴定的用户名。  CERT_COOKIE  客户端验证的唯一 ID,以字符串方式返回。可作为整个客户端验证的签字。  CERT_FLAGS  如有客户端验证,则 bit0 为 1。 如果客户端验证的验证人无效(不在服务器承认的 CA 列表中),bit1 被设置为 1。   CERT_ISSUER  用户验证中的颁布者字段(O=MS,OU=IAS,CN=us......

阅读全文(2311) | 评论:0

[置顶] 如何将数据库二进制图片保存到硬盘上(2007-07-24 13:14:00)

摘要:1.建立一个aspx页面,copy  html代码
 <!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 runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        &nbsp;<asp:FileUpload ID="FileUpload1" runat="server" />&nbsp;<asp:TextBox ID="txtUserName"
            runat="server"></asp:TextBox>
        <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="保存" />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="将数据库二进制图片存到磁盘" Width="207px" /></div>......

阅读全文(3966) | 评论:0

不经保存,直接读取上传文件的内容(2007-09-06 09:13:00)

摘要:<%@ 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"> <script runat="server">   protected void btnUpload_Click( object sender, EventArgs e )
  {
    if (FileUpload1.PostedFile.InputStream.Length < 1)
    {
      Msg.Text = "请选择文件。";
      return;
    }
    string FileName = FileUpload1.FileName;
    if (FileName.ToLower().IndexOf(".txt") == -1)
    {
      Msg.Text = "请选择文本文件。";
      return;
    }     int FileLen = FileUpload1.PostedFile.ContentLength;
    byte[] input = new byte[FileLen];
    System.IO.Stream UpLoadStream = FileUpload1.PostedFile.I......

阅读全文(2032) | 评论:0

HttpHandler和HttpModule(2007-08-15 18:20:00)

摘要:ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达HttpHandler,HttpHandler处理完之后,仍经过Pipeline中各个HttpModule的处理,最后将HTML发送到客户端浏览器中。ASP.Net系统本身配置有很多HttpHandler和HttpModule,以处理aspx等.Net标准的页面文件,以及这些页面文件中标准的事件处理等。查看%System%/Microsoft.NET\Framework\v2.0.50727\CONFIG目录下的web.config文件中的httpHandlers和httpModules节点,可以看到这些配置。如果有兴趣,可以使用Reflector查看.Net系统中相关的类和方法,了解.Net如何处理以及做了什么处理。.Net也提供了一套机制来开发自定义的HttpHandler和HttpModule,均可以用于对HttpRequest的截取,完成自定义的处理。 HttpModule 继承System.Web.IHttpModule接口,实现自己的HttpModule类。必须要实现接口的两个方法:Init和Dispose。在Init中,可以添加需要截取的事件;Dispose用于资源的释放,如果在Init中创建了自己的资源对象,请在Dispose中进行释放。 namespace MyModule
{
  public class MyHttpModule : IHttpModule
  {
    public MyHttpModule()
    {
    }     public void Init(HttpApplication r_objApplication)
    {
      r_objApplication.BeginRequest += new EventHandler(this.BeginRequest);
  &nb......

阅读全文(2965) | 评论:0

XSL/XSLT 中实现随机排序(2007-07-25 12:15:00)

摘要:和数据库排序一样,XSL/XSLT也可以实现随机排序,原理也很简单,下面就是代码。 <?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:eMeng="http://dotnet.aspx.cc/"
  version="1.0">
<msxsl:script language="JavaScript" implements-prefix="eMeng">
 function Random() {
  return Math.random();
 }
</msxsl:script> <xsl:template match="/">
<xsl:for-each select="/*/node()">
<xsl:sort select="eMeng:Random()"/>
<xsl:value-of select="."/>
<br/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>  ......

阅读全文(2443) | 评论:0

实用的Web进度条(2007-07-24 13:10:00)

摘要:
1.建立进度条html页面progressbar.htm
<script language="javascript"> function setPgb(pgbID, pgbValue)
{
    if ( pgbValue <= 100 )
    {
        //debugger;
        if (lblObj = document.getElementById(pgbID+'_label'))
        {
            lblObj.innerHTML = pgbValue + '%'; // change the label value
        }
        if ( pgbObj = document.getElementById(pgbID) )
        {
            var divChild = pgbObj.children[0];
            pgbObj.children[0].style.width = pgbValue + "%";
        }
&......

阅读全文(3460) | 评论:0

Attribute在.net编程中的应用(2007-06-12 15:06:00)

摘要:Attribute的基本概念 经常有朋友问,Attribute是什么?它有什么用?好像没有这个东东程序也能运行。实际上在.Net中,Attribute是一个非常重要的组成部分,为了帮助大家理解和掌握Attribute,以及它的使用方法,特地收集了几个Attribute使用的例子,提供给大家参考。 在具体的演示之前,我想先大致介绍一下Attribute。我们知道在类的成员中有property成员,二者在中文中都做属性解释,那么它们到底是不是同一个东西呢?从代码上看,明显不同,首先就是它们的在代码中的位置不同,其次就是写法不同(Attribute必须写在一对方括符中)。 什么是Atrribute 首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述:
公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。 在.NET中,Attribute被用来处理多种问题,比如序列化、程序的安全特征、防止即时编译器对程序代码进行优化从而代码容易调试等等。下面,我们先来看几个在.NET中标准的属性的使用,稍后我们再回过头来讨论Attribute这个类本身。(文中的代码使用C#编写,但同样适用所有基于.NET的所有语言) Attribute作为编译器的指令 在C#中存在着一定数量的编译器指令,如:#define DEBUG, #undefine DEBUG, #if等。这些指令专属于C#,而且在数量上是固定的。而Attribute用作编译器指令则不受数量限制。比如下面的三个Attribute: Conditional:起条件编译的作用,只有满足条件,才允许编译器对它的代码进行编译。一般在程序调试的时候使用。 DllImport:用来标记非.NET的函数,表明该方法在一个外部的DLL中定义。 Obsolete:这个属性用来标记当前的方法已经被废弃,不再使用了。 下面的代码演示了上述三个属性的使用: #define DEBUG //这里定义条件 using System; usi......

阅读全文(2536) | 评论:0

用ASP.NET 2.0实现AJAX风格的Web开发(2007-04-03 10:05:00)

摘要:归纳来看,AJAX风格的Web应用程序展示了下列特征:

  · 到Web服务器的异步请求-在用户等待来自于Web服务器的响应时,浏览器用户接口不会被堵塞,而是可以继续响应用户的交互。

  · 高度依赖于用JavaScript编写的基于浏览器的逻辑-W3C DOM的最新改进和标准化为实现动态的客户端UI更新提供了支持。

  · 在浏览器和Web服务器之间的基于XML数据的交换-XMLHttp对象使得与Web服务器进行通讯而不需要重载页面成为可能。

  一个AJAX应用程序和传统型Web应用程序之间的最大差别是,每次用户交互不会导致每一个HTTP请求都被发送到Web服务器;而是,用JavaScript实现的基于浏览器的逻辑掌握着控制权,之后再由该控制决定是局部处理请求还是向服务器作异步调用。一旦到服务器的异步调用结束,客户端逻辑立即适当更新UI的相关部分。这种方式具有下列优点:

  · 用户体验更为丰富。例如,当一个Google地图用户沿一个方向拖动地图时,系统就会在后台向服务器发出一个异步请求,结果是他能够在超出屏幕边界后继续拖动。这样以来,当用户进一步拖动地图时,新的图像已经可用了。这导致一种响应更快的感觉。

  · 既然跨越基于XMLHttp的到服务器的调用状态并没有丢失,那么,AJAX应用程序就可以避免每次都重新生成UI界面。

  · 更多的逻辑位于浏览器端,从而减少了到Web服务器的来回请求的数量,进而全面改进系统的潜力。

  尽管存在这么多的优点,然而AJAX风格的应用程序还是存在一些不足之处。例如,AJAX风格应用程序的开发是比较困难的,因为缺乏相应的框架(一组类似于Windows MFC工具包的UI类)和IDE(调试,可视化设计,等等)支持。另外,基于AJAX进行开发要求一个人必须至少掌握两种语言(DHTML和JavaScript)。而且,AJAX风格应用程序的编码需要更长的时间,因为它需要另外的测试以使其支持多浏览器版本和类型。最后,由于基于JavaScript的源码为终端用户可存取,所以开发过程中的安全分析也变得非常重要。

  幸好,例如Atlas,AJAX.NET和Google Maps API等工具的出现为将来构建AJAX......

阅读全文(2816) | 评论:2

 asp.net常见问题(二)(2007-04-03 09:53:00)

摘要:1. 打开新的窗口并传送参数:   传送参数: response.write("<script>window.open
('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")   接收参数: string a  = Request.QueryString("id");
string b  = Request.QueryString("id1"); 2.为按钮添加对话框 Button1.Attributes.Add("onclick","return confirm('确认?')");
button.attributes.add("onclick","if(confirm('are you sure...?'))
{return true;}else{return false;}") 3.删除表格选定记录 int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() 4.删除表格记录警告 private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
 switch(e.Item.ItemType)
 {
  case ListItemType.Item :
  case ListItemType.AlternatingItem :
  case ListItemType.EditItem:
    TableCell myTableCell;
    myTableCell = e.Item.Cells[14];
    LinkButton myDeleteButton ;
 ......

阅读全文(2659) | 评论:0

asp.net常见错误(-)(2007-04-03 09:44:00)

摘要:ASP.NET常见问题解答: 一、无法在服务器上调试 Error while trying to run project: unable to start debugging on the web server. Would you like disable future attempts to debug asp.net pages for this project? 解决方法:说明IIS没配置好,网;"业]@rUaYj打开IIS,查看默认站点属性,选中“目录安全性” 选项卡——>编辑“匿名访问和身份验证控制”,确认“集成WINDOWS验证”被选中 二、没有权限,无法在服务器上调试 Error while trying to run project: unable to start debugging on the web server. You do not have permissions to debug the server. Verify that you are a member of the debugger users’ group on the server. Would you like disable future attempts to debug asp.net pages for this project? 解决方法:由于系统安全、权限设置不合适。 (1) 确认“集成WINDOWS身份验证”被选择 (2) 再确认登陆帐户对于IIS设定的目录具有完全控制权限。 (3) 如果你创建的WEB项目是机器名,说明目前站点是一个INTERNER站点, IE的默认设置将影响你的调试。 三、发送用于调试的HTTP请求过程中发生服务器端错误,无法在服务器上进行调试。 Error while trying to run project: unable to start debugging on the web server. Server side-error occurred on sending debug HTTP request. Make sure the server is operating correctly. verify there are no syntax errors in we......

阅读全文(9247) | 评论:28