Linux 有一个好处就是你可以随便的更新.当然你要更新就需要链接到服务器.默认情况下Ubuntu的更新服务器是欧洲的主服务器.数据不远万里来到中国肯定很慢,当然在中国也是有很多镜像和更新服务器的.现在就来介绍如何修改镜像服务器的地址.

首先需要知道,Ubuntu对更新服务器的存放地址在etc/apt/sources.list文里面,为了以防万一,我们先备份一下该文件,命令如下:

sudo cp etc/opt/sources.list etc/opt/sources.list_backup

然后,用如下命令打开该配置文件

sudo gedit etc/opt/soutces.list

把找到的源地址内容替换打开的文件的内容.(建议使用台湾大学的更新服务器地址,速度飕飕的)

好了,保存文件,关闭gedit

然后记得使用命令

sudo opt-get update

来更新一下刚刚配置好的源.

posted @ 2008-09-20 19:23 李晓强 阅读(23) | 评论 (0)编辑
假设P(n)是一个命题,比如说P(n)="n(n+3)是一个偶数。"那么如果我们要证明P(n)对所有的n都成立的一个重要方法是:

1)证明p(1)成立

2)给出一个p(1),p(2)...p(n)都为真,则p(n+1)也为真的证明。

现在有一个例子如下:

1 = 1 * 1

1 + (2 * 2 - 1) = 2 * 2

1 + 2 + (2 * 3 - 1) = 3 * 3

....

1 + ... +(2 * n - 1) = n * n

 好的,那么p(n) = "1 + ... +(2 * n - 1) = n * n"

1)  p(1) = "1 = 1 * 1 " 显然是正确的。

2)  现在我们要证明如果p(1),p(2)...p(n)都为真,则p(n+1)也为真

由于p(n)为真,于是有 1 + ... +(2 * n - 1) = n * n

在等式的两边都加上(2n + 1)结果是

1 + ... +(2 * n - 1) + (2n + 1)  = n * n + 2n + 1

即(1 + ... +(2 * n - 1) ) + (2n + 1) = n * n + 2n + 1

 这显然是成立的.

posted @ 2008-09-19 22:30 李晓强 阅读(14) | 评论 (0)编辑

今天终于搞定了Ubuntu并成功安装上了Linux小企鹅中文输入法

简单介绍一下:

首先配置好网络链接。

然后打开终端

输入命令

sudo apt-get install im-switch fcitx

然后就会开始下载相应的软件包。

下载完成后,打开 /etc/X11/xinit/xinput.d/fcitx并进行如下编辑。

XIM=fcitx
XIM_PROGRAM
=/usr/bin/fcitx
XIM_ARGS
=""
GTK_IM_MODULE
=XIM
QT_IM_MODULE
=XIM
DEPENDS
="fcitx"

然后需要使用命令来切换输入法

sudo im-switch -s fcitx

 

posted @ 2008-09-19 22:01 李晓强 阅读(11) | 评论 (0)编辑
Network Working Group                                      R. Fielding
Request for Comments: 2616                                   UC Irvine
Obsoletes: 2068                                              J. Gettys
Category: Standards Track                                   Compaq/W3C
J. Mogul
Compaq
H. Frystyk
W3C/MIT
L. Masinter
Xerox
P. Leach
Microsoft
T. Berners-Lee
W3C/MIT
June 1999

Hypertext Transfer Protocol -- HTTP/1.1

超文本传输协议 -- HTTP/1.1 

Status of this Memo

本文目的

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文介绍了Internet的标准规范,请引用"Internet Official Protocol Standards" (STD 1)做为对本协议的标准化规范.本文可以任意转载.

Copyright Notice

版权信息:

Copyright (C) The Internet Society (1999). All Rights Reserved.

Abstract

简介 

The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol which can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers [47]. A feature of HTTP is the typing and negotiation of data representation, allowing systems to be built independently of the data being transferred.

超文本传输协议(HTTP)是针对分布式,协同工作的多媒体信息系统的应用层协议.除了经常用作传输超文本以外还可以通过对其请求方法,错误代码,和头的扩展无界的支持于命名服务,分布式对象管理系统等.HTTP的特性是数据表示的协商,它允许系统的构建独立于被传输的数据.

HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as "HTTP/1.1", and is an update to RFC 2068 [33].

HTTP 在1990年首先被应用于WWW,该规范定义了HTTP/1.1版本的规范,该规范当最近更新于RFC 2068

Table of Contents

  1. Introduction ... 1    前言
    1. Purpose ... 1.1 目的
    2. Requirements ... 1.2需求
    3. Terminology ... 1.3 术语
    4. Overall Operation ... 1.4概览
  2. Notational Conventions and Generic Grammar ... 2 常规协议和语法
    1. Augmented BNF ... 2.1
    2. Basic Rules ... 2.2 基本规则
  3. Protocol Parameters ... 3 协议参数
    1. HTTP Version ... 3.1 HTTP版本
    2. Uniform Resource Identifiers ... 3.2 统一资源标识符
      1. General Syntax ... 3.2.1 一般语法
      2. http URL ... 3.2.2 HTTP URL
      3. URI Comparison ... 3.2.3  URT 比较
    3. Date/Time Formats ... 3.3  日期时间格式
      1. Full Date ... 3.3.1 
      2. Delta Seconds ... 3.3.2
    4. Character Sets ... 3.4  字符集
      1. Missing Charset ... 3.4.1 丢失字符集 
    5. Content Codings ... 3.5  内容编码
    6. Transfer Codings ... 3.6 转义编码
      1. Chunked Transfer Coding ... 3.6.1  块转义编码
    7. Media Types ... 3.7  媒体类型
      1. Canonicalization and Text Defaults ... 3.7.1  标准化和默认正文
      2. Multipart Types ... 3.7.2 多部分类型
    8. Product Tokens ... 3.8 产品标志
    9. Quality Values ... 3.9 质量价值
    10. Language Tags ... 3.10 语言标识
    11. Entity Tags ... 3.11 实体标识
    12. Range Units ... 3.12 范围单元
  4. HTTP Message ... 4  HTTP 消息
    1. Message Types ... 4.1  消息类型
    2. Message Headers ... 4.2 消息头
    3. Message Body ... 4.3 消息体
    4. Message Length ... 4.4 消息长度
    5. General Header Fields ... 4.5 通用头域
  5. Request ... 5  请求
    1. Request-Line ... 5.1 请求行 
      1. Method ... 5.1.1 方法
      2. Request-URI ... 5.1.2 请求-URI 
    2. The Resource Identified by a Request ... 5.2 请求的资源标识 
    3. Request Header Fields ... 5.3  请求头域
  6. Response ... 6  应答(Response)
    1. Status-Line ... 6.1 状态行
      1. Status Code and Reason Phrase ... 6.1.1 状态码和解释 
    2. Response Header Fields ... 6.2 Response 头域
  7. Entity ... 7  实体
    1. Entity Header Fields ... 7.1  实体头域
    2. Entity Body ... 7.2 实体体
      1. Type ... 7.2.1 类型
      2. Entity Length ... 7.2.2 实体长度
  8. Connections ... 8 连接
    1. Persistent Connections ... 8.1  固定连接
      1. Purpose ... 8.1.1 目的
      2. Overall Operation ... 8.1.2 概述.
      3. Proxy Servers ... 8.1.3 代理服务器
      4. Practical Considerations ... 8.1.4 实用要素
    2. Message Transmission Requirements ... 8.2 消息传输要求
      1. Persistent Connections and Flow Control ... 8.2.1 固定连接和流控件
      2. Monitoring Connections for Error Status Messages ... 8.2.2 侦测连接获取错误状态消息
      3. Use of the 100 (Continue) Status ... 8.2.3 实用100(继续)状态
      4. Client Behavior if Server Prematurely Closes Connection ... 8.2.4 服务器端过早的关闭控件精辟客户端的行为
  9. Method Definitions ... 9  方法定义
    1. Safe and Idempotent Methods ... 9.1 安全幂等方法
      1. Safe Methods ... 9.1.1 安全方法
      2. Idempotent Methods ... 9.1.2 幂等方法
    2. OPTIONS ... 9.2 选项
    3. GET ... 9.3 GET
    4. HEAD ... 9.4 HEAD
    5. POST ... 9.5 POST
    6. PUT ... 9.6 PUT
    7. DELETE ... 9.7 DELETE
    8. TRACE ... 9.8 TRACE
    9. CONNECT ... 9.9 CONNECT
  10. Status Code Definitions ... 10 状态码定义
    1. Informational 1xx ... 10.1 信息1XX
      1. 100 Continue ... 10.1.1 100 继续
      2. 101 Switching Protocols ... 10.1.2  101切换协议
    2. Successful 2xx ... 10.2 成功2xx
      1. 200 OK ... 10.2.1 200 OK
      2. 201 Created ... 10.2.2  201 创建
      3. 202 Accepted ... 10.2.3  202 接受
      4. 203 Non-Authoritative Information ... 10.2.4 203 非官方消息
      5. 204 No Content ... 10.2.5  204 无内容
      6. 205 Reset Content ... 10.2.6  205 重置内容
      7. 206 Partial Content ... 10.2.7  206 部分内容(内容残缺?)
    3. Redirection 3xx ... 10.3  重定向 3XX
      1. 300 Multiple Choices ... 10.3.1 300 多选择 
      2. 301 Moved Permanently ... 10.3.2  301 永久移动
      3. 302 Found ... 10.3.3  302 发现
      4. 303 See Other ... 10.3.4  303 转向其他
      5. 304 Not Modified ... 10.3.5  304 没有修改
      6. 305 Use Proxy ... 10.3.6  305 实用代理
      7. 306 (Unused) ... 10.3.7  306 未使用
      8. 307 Temporary Redirect ... 10.3.8  307 临时重定向
    4. Client Error 4xx ... 10.4  客户端错误
      1. 400 Bad Request ... 10.4.1  400 错误的请求
      2. 401 Unauthorized ... 10.4.2  401 非法请求(无权限)
      3. 402 Payment Required ... 10.4.3  402 必须支付???
      4. 403 Forbidden ... 10.4.4  403 禁止
      5. 404 Not Found ... 10.4.5  404 未发现
      6. 405 Method Not Allowed ... 10.4.6 405 方法没有被允许
      7. 406 Not Acceptable ... 10.4.7  406 不可接收
      8. 407 Proxy Authentication Required ... 10.4.8  407 需要代理权限
      9. 408 Request Timeout ... 10.4.9  408 请求超时
      10. 409 Conflict ... 10.4.10  409 冲突
      11. 410 Gone ... 10.4.11  410 GONE
      12. 411 Length Required ... 10.4.12  411 未知长度
      13. 412 Precondition Failed ... 10.4.13  412 准备条件失败
      14. 413 Request Entity Too Large ... 10.4.14  413 请求的实体过大
      15. 414 Request-URI Too Long ... 10.4.15  414 请求的URI超长
      16. 415 Unsupported Media Type ... 10.4.16  415 不支持的媒体类型
      17. 416 Requested Range Not Satisfiable ... 10.4.17  416 不满住请求范围
      18. 417 Expectation Failed ... 10.4.18  417 EXPECTATION FAILED
    5. Server Error 5xx ... 10.5  服务端错误 5XX
      1. 500 Internal Server Error ... 10.5.1  500 内部服务错误
      2. 501 Not Implemented ... 10.5.2  501未应用
      3. 502 Bad Gateway ... 10.5.3  502 网关错误
      4. 503 Service Unavailable ... 10.5.4  503 服务无效
      5. 504 Gateway Timeout ... 10.5.5  504 网关超时
      6. 505 HTTP Version Not Supported ... 10.5.6  505 HTTP版本不支持.
  11. Access Authentication ... 11  访问验证
  12. Content Negotiation ... 12  内容协商
    1. Server-driven Negotiation ... 12.1 服务端驱动协商
    2. Agent-driven Negotiation ... 12.2 客户端驱动协商
    3. Transparent Negotiation ... 12.3 透明协商
  13. Caching in HTTP ... 13  HTTP中的缓存
    1. @@ missing  @@丢包
      1. Cache Correctness ... 13.1.1  缓存校验
      2. Warnings ... 13.1.2  警告
      3. Cache-control Mechanisms ... 13.1.3  缓存控制机制
      4. Explicit User Agent Warnings ... 13.1.4  显式用户段警告
      5. Exceptions to the Rules and Warnings ... 13.1.5  规则和警告的异常
      6. Client-controlled Behavior ... 13.1.6  客户端控制的行为
    2. Expiration Model ... 13.2  终止模式
      1. Server-Specified Expiration ... 13.2.1  服务端终止
      2. Heuristic Expiration ... 13.2.2  尝试终止
      3. Age Calculations ... 13.2.3  生命计算
      4. Expiration Calculations ... 13.2.4  终止计算
      5. Disambiguating Expiration Values ... 13.2.5  消除二义性的终止值
      6. Disambiguating Multiple Responses ... 13.2.6  消除二义性的多Response
    3. Validation Model ... 13.3  验证模式
      1. Last-Modified Dates ... 13.3.1  最终验证时间
      2. Entity Tag Cache Validators ... 13.3.2 实体标识缓存验证
      3. Weak and Strong Validators ... 13.3.3 唤醒和强验证
      4. Rules for When to Use Entity Tags and Last-Modified Dates ... 13.3.4  何时使用实体标识和最后修改日期的规则
      5. Non-validating Conditionals ... 13.3.5  非验证条件
    4. Response Cacheability ... 13.4  可缓存应答
    5. Constructing Responses From Caches ... 13.5  从缓存中构造应答
      1. End-to-end and Hop-by-hop Headers ... 13.5.1 端对端和跳跃式头
      2. Non-modifiable Headers ... 13.5.2 未修改的头
      3. Combining Headers ... 13.5.3  组合头
      4. Combining Byte Ranges ... 13.5.4  组合字节范围
    6. Caching Negotiated Responses ... 13.6  缓存协商应答
    7. Shared and Non-Shared Caches ... 13.7  共享和非共享缓存
    8. Errors or Incomplete Response Cache Behavior ... 13.8  错误和未完成的应答缓存行为
    9. Side Effects of GET and HEAD ... 13.9  GET 和 HEAD的边效应
    10. Invalidation After Updates or Deletions ... 13.10  更新和删除后的失效
    11. Write-Through Mandatory ... 13.11  强制性写入
    12. Cache Replacement ... 13.12  缓存替换.
    13. History Lists ... 13.13  历史记录
  14. Header Field Definitions ... 14  头域定义
    1. Accept ... 14.1  接收
    2. Accept-Charset ... 14.2 
    3. Accept-Encoding ... 14.3
    4. Accept-Language ... 14.4
    5. Accept-Ranges ... 14.5
    6. Age ... 14.6
    7. Allow ... 14.7
    8. Authorization ... 14.8
    9. Cache-Control ... 14.9  缓存控制
      1. What is Cacheable ... 14.9.1  可缓存的东西.
      2. What May be Stored by Caches ... 14.9.2  什么可以用缓存存储
      3. Modifications of the Basic Expiration Mechanism ... 14.9.3  基本终止机制的修饰
      4. Cache Revalidation and Reload Controls ... 14.9.4  缓存的重新验证和加载控制
      5. No-Transform Directive ... 14.9.5 
      6. Cache Control Extensions ... 14.9.6 缓存控制扩展 
    10. Connection ... 14.10  连接
    11. Content-Encoding ... 14.11 内容-编码 
    12. Content-Language ... 14.12  内容-语言
    13. Content-Length ... 14.13  内容-长度
    14. Content-Location ... 14.14 内容-区域
    15. Content-MD5 ... 14.15  内容-MD5加密
    16. Content-Range ... 14.16  内容-范围
    17. Content-Type ... 14.17  内容-类型
    18. Date ... 14.18  时间
      1. Clockless Origin Server Operation ... 14.18.1 
    19. ETag ... 14.19
    20. Expect ... 14.20
    21. Expires ... 14.21
    22. From ... 14.22
    23. Host ... 14.23  主机
    24. If-Match ... 14.24  如果匹配
    25. If-Modified-Since ... 14.25 
    26. If-None-Match ... 14.26
    27. If-Range ... 14.27
    28. If-Unmodified-Since ... 14.28
    29. Last-Modified ... 14.29
    30. Location ... 14.30
    31. Max-Forwards ... 14.31
    32. Pragma ... 14.32
    33. Proxy-Authenticate ... 14.33
    34. Proxy-Authorization ... 14.34
    35. Range ... 14.35
      1. Byte Ranges ... 14.35.1
      2. Range Retrieval Requests ... 14.35.2
    36. Referer ... 14.36
    37. Retry-After ... 14.37
    38. Server ... 14.38
    39. TE ... 14.39
    40. Trailer ... 14.40
    41. Transfer-Encoding ... 14.41
    42. Upgrade ... 14.42
    43. User-Agent ... 14.43
    44. Vary ... 14.44
    45. Via ... 14.45
    46. Warning ... 14.46
    47. WWW-Authenticate ... 14.47
  15. Security Considerations ... 15
    1. Personal Information ... 15.1
      1. Abuse of Server Log Information ... 15.1.1
      2. Transfer of Sensitive Information ... 15.1.2
      3. Encoding Sensitive Information in URI's ... 15.1.3
      4. Privacy Issues Connected to Accept Headers ... 15.1.4
    2. Attacks Based On File and Path Names ... 15.2
    3. DNS Spoofing ... 15.3
    4. Location Headers and Spoofing ... 15.4
    5. Content-Disposition Issues ... 15.5
    6. Authentication Credentials and Idle Clients ... 15.6
    7. Proxies and Caching ... 15.7
      1. Denial of Service Attacks on Proxies ... 15.7.1
  16. Acknowledgments ... 16
  17. References ... 17
  18. Authors' Addresses ... 18
  19. Appendices ... 19
    1. Internet Media Type message/http and application/http ... 19.1
    2. Internet Media Type multipart/byteranges ... 19.2
    3. Tolerant Applications ... 19.3
    4. Differences Between HTTP Entities and RFC 2045 Entities ... 19.4
      1. MIME-Version ... 19.4.1
      2. Conversion to Canonical Form ... 19.4.2
      3. Conversion of Date Formats ... 19.4.3
      4. Introduction of Content-Encoding ... 19.4.4 内容编码介绍
      5. No Content-Transfer-Encoding ... 19.4.5  无内容转移编码
      6. Introduction of Transfer-Encoding ... 19.4.6 转义码介绍
      7. MHTML and Line Length Limitations ... 19.4.7  MHTML h饿行长度限制
    5. Additional Features ... 19.5  附加特性
      1. Content-Disposition ... 19.5.1  内容-处置
    6. Compatibility with Previous Versions ... 19.6  老版本的兼容性
      1. Changes from HTTP/1 ... 19.6.1
      2. Compatibility with HTTP/1 ... 19.6.2
      3. Changes from RFC 2068 ... 19.6.3
  20. Index ... 20 索引
  21. Full Copyright Statement ... 21
derived from HTTP/1.1, Internet RFC 2616, Fielding, et al.
using rfc2html Revision: 1.8 Date: 2004/09/01 13:21:38 by Dan Connolly
 
 
posted @ 2008-09-17 21:52 李晓强 阅读(18) | 评论 (0)编辑

通常情况下我们构造的数据库都只有两个文件,mdf文件和ldf文件.但是这样有两个缺点,

(一):容易导致文件过大,

     我们知道,mdf文件是数据库文件,这样的话也就意味着随着数据库的增大mdf就会相应的增大,显然在现在的应用中数据膨胀是太常见的事情了,当你的应用变大后,mdf文件也会变大,然而windows对文件的大小是有要求的,这样的话很容易导致mdf文件达到windows所允许的文件大小的界限(于是数据库就崩溃了).

(二):没有利用到磁盘阵列,

     大型的服务器好多都有磁盘阵列,你可以把磁盘阵列简单的假象成n个一块转动的磁盘,磁盘阵列的设计是希望通过多个磁盘的串联来得到更大的读写效率.但是如果你的数据库只有一个mdf文件(ldf文件暂时不考虑),那么你总是只能够利用这个磁盘阵列里面的一个磁盘而已.那样的话昂贵的磁盘阵列的效率就由并联变成串联了.试想如果我们能够让mdf分散成多个文件,比如说磁盘阵列上的每个磁盘中都分配一个文件,然后把mdf中的数据分散到各个文件中,我在读取的时候就是串联的读取了,这样就充分的利用了磁盘阵的存取效能.

 

还好,这两个问题平常我们没有遇到过(条件不具备嘛!),但是做大型的服务开发的时候这几乎是致命的.

 

那么微软有么有给我们提供一些解决之道呢?

答案是有的:

下面是摘自MSDN的一段.

 

了解文件和文件组

每个 SQL Server 数据库至少具有两个操作系统文件:一个数据文件和一个日志文件。数据文件包含数据和对象,例如表、索引、存储过程和视图。日志文件包含恢复数据库中的所有事务所需的信息。为了便于分配和管理,可以将数据文件集合起来,放到文件组中。

SQL Server 数据库具有三种类型的文件,如下表所示:

文件 说明

主要

主要数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。主要数据文件的建议文件扩展名是 .mdf。

次要

次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个 Windows 文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长。

次要数据文件的建议文件扩展名是 .ndf。

事务日志

事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。事务日志的建议文件扩展名是 .ldf。

例如,可以创建一个简单的数据库 Sales,其中包括一个包含所有数据和对象的主要文件和一个包含事务日志信息的日志文件。也可以创建一个更复杂的数据库 Orders,其中包括一个主要文件和五个次要文件。数据库中的数据和对象分散在所有六个文件中,而四个日志文件包含事务日志信息。

默认情况下,数据和事务日志被放在同一个驱动器上的同一个路径下。这是为处理单磁盘系统而采用的方法。但是,在生产环境中,这可能不是最佳的方法。建议将数据和日志文件放在不同的磁盘上。

每个数据库有一个主要文件组。此文件组包含主要数据文件和未放入其他文件组的所有次要文件。可以创建用户定义的文件组,用于将数据文件集合起来,以便于管理、数据分配和放置。

例如,可以分别在三个磁盘驱动器上创建三个文件 Data1.ndf、Data2.ndf 和 Data3.ndf,然后将它们分配给文件组 fgroup1。然后,可以明确地在文件组 fgroup1 上创建一个表。对表中数据的查询将分散到三个磁盘上,从而提高了性能。通过使用在 RAID(独立磁盘冗余阵列)条带集上创建的单个文件也能获得同样的性能提高。但是,文件和文件组使您能够轻松地在新磁盘上添加新文件。

下表列出了存储在文件组中的所有数据文件。

文件组 说明

主要

包含主要文件的文件组。所有系统表都被分配到主要文件组中。

用户定义

用户首次创建数据库或以后修改数据库时明确创建的任何文件组。

默认文件组

如果在数据库中创建对象时没有指定对象所属的文件组,对象将被分配给默认文件组。不管何时,只能将一个文件组指定为默认文件组。默认文件组中的文件必须足够大,能够容纳未分配给其他文件组的所有新对象。

PRIMARY 文件组是默认文件组,除非使用 ALTER DATABASE 语句进行了更改。但系统对象和表仍然分配给 PRIMARY 文件组,而不是新的默认文件组。

posted @ 2008-09-03 14:27 李晓强 阅读(19) | 评论 (0)编辑

这里是一个LongTextField继承于BoundField用来显示长文本(比如说备注信息之类的),该控件根据当前的显示模式是编辑模式还是显示模式来分别显示一个Div控件和TextBox控件.

我的表达能力不好,还是直接上代码吧.

首先定制控件如下

Code

然后在页面中使用的代码如下

Code


posted @ 2008-08-24 14:17 李晓强 阅读(17) | 评论 (0)编辑

首先这是一个非技术话题,是这样的.我今天又看见有人在讨论for与foreach的性能.于是我就憋不住了想说两句.

首先要明白C#是做应用的.应用注重的是程序的结构,而不是那微小的性能差异,不得不说关于for与foreach的性能差异,远没有你在设计的时候考虑好结构对性能产生的影响巨大.我的观点就是如果你要求性能尽可以用C,C++,C#,Java之类是做应用的,应用要的是结构,可维护,可扩展性.这也就是为什么java执行效率比较低(跟C++,C之类比)但是确实最风靡的平台语言的原因.

posted @ 2008-08-24 14:10 李晓强 阅读(7) | 评论 (0)编辑

先上代码如下:

 

Code

 

 

很显然我们手工对grdPaging尽心数据绑定,然后启用了AllowPaging,好的,在浏览其里面查看,结果良好

 

(图片比较小,大家忍着点,实在忍不了的我也没办法,嘿嘿)

可是当点击下面的分页页码的时候就会出现问题了 

 

GridView“grdPaging”激发了未处理的事件“PageIndexChanging”。

上网上查询结果说手动绑定到数据原的时候必须亲自处理PageIndexChanging事件,不爽啊.

于是对上述问题进行改进,改进代码如下

 

Code

 

添加了处理的PageIndexChanging事件,本以为大功告成,可是运行一看,当切换页码的时候,GridView中的数据成了空的了.什么原因?

后来经我"""""猜测"""""猜测的,要是大家知道官方的标准的解释,请给我留言,站着谢谢了.

 

我猜测的原因是:ASP.NET,在Page_Load中对GridView进行数据绑定后,dt就消失了(作为内存垃圾),而GridView.DataSource也跟他脱离了关系,要想维持原来的关系对不其没办法,你只有重新指定dt,重新绑定,啊,天啊,你怎么这么惨

于是重新进行修改:

Code