ASP.NET编程技巧

 

记录ASP.NET编程技巧,持续更新:
(1)可以用递归的方法一次性删除页面上的文本框的值,不管这个文本框在多少级容器中.

private void ClearText(ControlCollection Controls)
    {
        foreach (Control item in Controls)
        {
            if (item.Controls.Count > 0)
            {
                ClearText(item.Controls);
            }

            if (item is TextBox)
            {
                ((TextBox)item).Text = "";
            }
        }
    } 

(2)在asp.net中利用页面基类实现身份验证

基类代码如下:

/// <summary>

/// AdminPage是后台所有需要身份验证的页的基类

/// </summary>

public class AdminPage:System.Web.UI.Page

{

public AdminPage()

{

        //处理加载事件

        this.Load += new EventHandler(AdminPage_Load);

}

 

    void AdminPage_Load(object sender, EventArgs e)

    {

        //假设用户登录成功之后会设置一个名为“UserInfo”的Session

        //假设用户登录页面login.aspx位于网站根目录下的Admin文件下

        if (Session["UserInfo"] == null)

        {

            //使用~来保证无论在什么目录层次进行身份验证都能跳转到后台登录页面

            Response.Redirect("~/Admin/Login.aspx");

        }

    }

}

     这样,对于后台任何需要进行身份验证的页面,只需将它更改为继承自AdminPage类即可,这样这些类中就不需要编写任何身份验证的代码了。却已经能实现验证了,因为它继承自AdminPage类。

using System;   

using System.Data;   

using System.Configuration;   

using System.Collections;   

using System.Web;   

using System.Web.Security;   

using System.Web.UI;   

using System.Web.UI.WebControls;   

using System.Web.UI.WebControls.WebParts;   

using System.Web.UI.HtmlControls;   

 

public partial class Admin_News_Index : AdminPage   

{   

    protected void Page_Load(object sender, EventArgs e)   

    {   

 

    }   

}  

(3)GridView显示行的序号:

<asp:GridView ID="GridView1" runat="server">
   
<Columns>       
       
<asp:TemplateField>           
           
<ItemTemplate>               
               
<%#Container.DataItemIndex+1 %>               
           
</ItemTemplate>       
       
</asp:TemplateField>   
   
</Columns>
</asp:GridView>

(4)GridView排序

       protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {        
                ViewState["SortOrder"] = "StudentID";   //排序字段名称
                ViewState["OrderDire"] = "ASC";
                BindData();
            }
        }

        public void BindData()     //数据绑定代码
        {

            DataSet ds = new DataSet();
            StringBuilder strWhere = new StringBuilder();
            if (txtKeyword.Text.Trim() != "")
            {     
                #warning 代码生成警告:请修改 keywordField 为需要匹配查询的真实字段名称
                strWhere.AppendFormat("StudentID like '%{0}%'", txtKeyword.Text.Trim());
            }           
            ds = bll.GetList(strWhere.ToString());

            DataView view = ds.Tables[0].DefaultView;
            string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];   //注意这行
            view.Sort = sort;
            gridView.DataSource = view;

            gridView.DataBind();
        }

       //编写Sorting事件代码

       protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
        {
            string sPage = e.SortExpression;
            if (ViewState["SortOrder"].ToString() == sPage)
            {
                if (ViewState["OrderDire"].ToString() == "Desc")
                    ViewState["OrderDire"] = "ASC";
                else
                    ViewState["OrderDire"] = "Desc";
            }
            else
            {
                ViewState["SortOrder"] = e.SortExpression;
            }
            BindData();
        }

 (5)将QQ状态发布在页面上,其他人点击后可以进行联系

可以登录腾讯网站http://wp.qq.com/index.html,获得代码:

<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=123456&site=qq&menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:123456:41" alt="点击这里给我发消息" title="点击这里给我发消息"></a>

只要把红色部分换成你的QQ号码,然后粘贴到页面上,就可实现该功能。

(6)指定Form的action

在asp.net中runat="server"的Form,其action只能指向自己。
服务器在解释.aspx页面的时候,会自动把runat="server"的Form的action指定为自身,而不管这个Form是否已经指定了action。
也就是说,只有一般的Form才能提交到别的页面,而这种HTML的Form是不能包含任何服务器端控件的,这样一来,所有的结构就像ASP一样了。

在某些特殊情况下,如果要指定Form的action,则不能用runat="server"的Form,只能用普通的Form,如:

    <form id="form1" action="test.aspx" method=post>
    <div>
        <input type=text ID="TextBox1" name="TextBox1"></input>
        <input id="Submit1" type="submit" value="submit" /></div>
    </form>

获取提交数据的test.aspx代码如下:
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Request.Form["TextBox1"]);
        //Response.Write(Request.Params["TextBox1"]);
    }

ASP NET精彩编程百例 pdf 学习ASP NET的必看书籍 讲述了100个ASp NET实例的来笼去脉 由这些实例扩展出许多值得学习的ASP NET技巧 是您学习ASP NET的必看知识 ASP NET是微软.NET战略中的一个重要成员 除了可以使用Visual C# VB.NET VisualC++ NET JScript.NET等语言编写外 还可以使用第三方的.NET接口 如COBOL.NET Perl.NET等 进行编写 本书通过100个精彩实例 由浅入深介绍了ASP NET网络程序设计的编程方法与实用技巧 为了方便读者学习与深入理解ASP NET 本书将这100 个实例分为4篇 即基础编程实例 中级编程实例 高级编程实例与混合编程实例 在每个实例中 除了介绍ASP NET中所提供的基础知识点及编程技巧外 还介绍了ASP NET在网络编程 图形编程 多媒体编程 Mobile 移动通信 等方面的重要应用及开发技术 本书附赠一张光盘 其中包括全部100个实例源代码及可执行文件 详细内容请参见光盘中的“本书配套光盘说明.txt” 本书体系结构清晰 解释说明详尽 开发实例典型 适合于计算机编程用户 网络用户及对ASP NET感兴趣的用户阅读 也可作为ASP NET培训参考书 书籍目录: 第1篇ASP NET基础编程实例 实例1一个HTML化的ASP NET程序 实例2ASP+WebForms广告轮换控制过程 实例3驱动器列表应用 实例4列出当前盘上目录和文件 实例5使用“文件预览”显示文件夹信息 实例6使用递归循环以显示目录列表 实例7在ASP 7NET中随意创建图形信息 实例8在ASP 8NET中显示事件日志记录 1 实例9在ASP 9NET中显示事件日志记录 2 实例10在ASP 10NET中使用DataGrid分页 实例11在ASP 11NET访问Excel2000 XP文件 实例12显示当前浏览器头信息 实例13利用ASP NET获取主机名和IP地址 实例14由域名获取其IP地址 实例15由IP地址获得其域名 实例16ASP NET中的正则表达式应用 实例17主机远程控制与探测应用 实例18ASP NET控件———AdRotator应用 实例19ASP NET日历程序 实例20查看主机内存情况 实例21ASP NET简易应用程序“Hello 22World ” 实例22读取Config 22Web配置文件 实例23显示BrowseCaps配置段内容 实例24写入文件操作与应用 实例25文件读操作及应用 实例26文件删除与应用 实例27ASP NET中异常处理及其应用 实例28AutoPostBack技术及其应用 实例29用户合法性验证与应用 实例30ASP 30NET列表框应用 实例31Calendar控件操作与应用 实例32用户操作验证与应用 实例33CompareValidator服务器比较控件操作与应用 实例34CustomValidator控件操作与应用 实例35服务器端控件ValidationSummary应用操作 实例36HtmlTable控件操作与应用 实例37在HTML控件中运用样式 实例38在Web服务器控件中运用样式 第2篇ASP NET中级编程实例 第3篇ASP NET高级编程实例 本站提供的ASP NET编程百例 PDF扫描版 附源代码(vb net)资源来源互联网 版权归该下载资源的合法拥有者所有 收起信息返回顶部
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值