关于ASP.NET平台下的Web Forms和MVC,乍一看来,大有一种“既生瑜何生亮”的感觉,但坐下来仔细思考,还是有其各自存在的道理的。首先,我们先来看一下Web Forms, 几年的实践证明Web Forms是一个非常稳定和成熟的平台,无疑它是强大的,但也不是完美无缺的。从以下几个方面来看它的强大之处:
1、性能优秀
实践证明,Web Forms的性能还是不错的,即使在性能要求非常高的情况下,它也能够表现优秀。
2、对初学者的门槛低
微软设计了一个完整Web开发环境,使得构建Web应用有了新的体验,开发人员只需在一个可视化设计器中拖放控件、并且在表单中设置属性,然后编写代码来响应事件即可。这使得对于程序逻辑的操作变得非常直观,就好像在开发一个WinForm应用一样。从这个角度来说,从Web froms入门Web开发是一件非常容易的事情。
3、可扩展性
Web Forms模型提供了一个高度抽象的框架,这个框架有着非常强大的扩展能力。即使在性能要求非常高的应用中,也不大会出现扩展方面的问题。除了ASP.NET内置的若干WEB控件外,我们可以根据需要开发并定义特定控件去完成特定任务。这一特性似的Web Forms具备了强大的扩展能力。正因为这个特性,可能A ......
Asp.net中DataBinder.Eval用法的总结
<%# Bind("Subject") %> //绑定字段
<%# Container.DataItemIndex + 1%> //实现自动编号
<%# DataBinder.Eval(Container.DataItem, "[n]") %>
通常使用的方法(这三个性能最好)
<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
<%# DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
<%# DataBinder.Eval(Container, "DataItem.ColumnName", null) %>
其他用法
<%# ((DataRowView)Container.DataItem)["ColumnName"] %>
<%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>
<%# ((DataRowView)Container.DataItem)["adtitle"] %>
<%# ((DataRowView)Container.DataItem)[n] %>
<%# ((DbDataRecord)Container.DataItem)[0] %>
<%# (((自定义类型)Container.DataItem)).属性.ToString() %>//如果属性为字符串类型就不用ToString()了
DataBinder.Eval用法范例
<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>
格式化字符串参数是可选的。如果忽略参数,DataBinder.Eval 返回对象类型 ......
在ASP.NET 2.0中,有时候需要对ASP.NET生成的HTML代码进行处理,或者是保存成静态文件。ASP.NET 提
供了直接将请求保存成文件的方法:HttpRequest.SaveAs方法。下面这个方法就是在ASP.NET 2.0中得到
ASP.NET生成的HTML代码,同时,生成一个静态文件的方法。
C#
<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<script runat="server">
// 计算数据,完全可以从数据看取得
ICollection CreateDataSource( )
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
dt.Columns.Add(new S ......
来源:http://www.code-123.com/html/2009917202320580.html
1.跟踪页面执行
设置断点是页面调试过程中的常用手段,除此之外,还可以通过查看页面的跟踪信息进行错误排查以及性能优化。ASP.NET中启用页面跟踪非常方便,只需在Page指令中加入Trace="True"属性即可:
<%@ Page Language="C#" Trace="true">
跟踪信息可以分为两类:
a.页面执行详细情况
其中主要包括页面生命周期中各事件列表、控件树列表(可以查看每个控件的HTML字节数以及ViewState字节数)、Session状态、Application状态、Cookie集合、QueryString集合、服务器变量等信息。
b.自定义跟踪信息
通过在页面代码中调用Trace.Write()或Trace.Warn()方法便可将指定内容写入跟踪信息中的"Trace Information"节。就算页面发生了错误,跟踪信息还是会显示出来,并且在发布应用程序时无需删除相关的跟踪代码,只 ......
我们在Asp.Net开发过程中,有时候为了开发的需要,或达到一定的效果,我们会才取动态加载用户控件的方法来实现,动态加载用户控件,可以在同一个页面里面,根据不同的情况显示不同的内容,使我们在开发省时省力。
那么我们怎么实现动态加载用户控件呢,其时很简单,我们只要在页面里要放控的件的地方放一个占位控件 <asp:PlaceHolder ID="phContent" runat="server"></asp:PlaceHolder> ,这个控件是Asp.Net自带的,然后在程序用就可以很简单地实现了,程序如下:
Control Ctr = Page.LoadControl("UserControl/Control.ascx"); //加载控件
Ctr.ID = "ControlName"; //申明控件名
phContent.EnableViewState = false; //指定是否启用ViewState
phContent.Controls.Add(Ctr); //输出控件
当然,不一定只有用户控件可以这样实现,其它的控件也都可以类似地实现。
在ASP.NET中动态加载内容(用户控件和模板)
要点:
1. 使用Page.ParseContro ......
----------------------ModalPopupExtender
D:\sourceforge\asp.net\AjaxControlToolkit_net20\SampleWebSite\ModalPopup\ModalPopup.aspx
// linkbutton1增加扩展ModalPopupExtender属性:
<asp:LinkButton ID="LinkButton1" runat="server" Text="Click here to change the paragraph style" />
<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender" runat="server"
TargetControlID="LinkButton1"
PopupControlID="Panel1"
BackgroundCssClass="modalBackground"
OkControlID="OkButton"
OnOkScript="onOk()"
......