.NET Web快速开发手册

本文介绍如何使用母板页统一网站样式及功能,并利用GridView快速实现数据增删查改功能。通过实例展示了母板页的基本结构及其如何整合网站地图,同时详解了如何配置GridView与数据源以简化CRUD操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.NET   Web快速开发手册

          花时间补了很多东西进去,可用于原形的快速开发,仅作个人备忘。 

1 母板页

母板页可以把网站总体风格和功能设计和特定网页的设计分隔开来。

1:母板页通常的命名

首先建立新母板页,在其中除了进行网页设计外,还可以写入如超链接,网站地图,甚至可以加入数据源,控件和事件响应,因为母板页虽然以master为后缀名,但实质上还是一个aspx页面。

 

2:母板页其实就是一个aspx页面

          母板页不同于其他页面的地方就在于其中可以加入ContentPlaceHolder,这只是个占位符似的控件,使用后,只要创建页面后使用该母板页为模版,就可以只设计开发ContentPlaceHolder中的内容而其余部分保持与母板页一致。

 

3:新创建的母板页都包含ContentPlaceHolder(其中紫色的框就是)

          母板页中还可以加入SiteMap,网站地图,实际上首先要在项目中加入一个叫SitemapXML

 

 

4:网站地图的XML

<?xml version="1.0" encoding="utf-8" ?>

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

    <siteMapNode url="~/Default.aspx" title="Data Process"  description="">

        <siteMapNode url="~/Another.aspx" title="Another"  description="" />

        <siteMapNode url="~/Again.aspx" title="Again"  description="" />

    </siteMapNode>

</siteMap>

      Xml内容如上,语法很简单,节点(叶子,之下没有子节点的)用<siteMapNode url="~/***.aspx" title="XXX"  description="" /> 表示,如果其下还有子节点用<siteMapNode url="~/Default.aspx" title="Data Process"  description="">******</siteMapNode> 来包裹,其中还需要记录下网站各节点的相对路径。

在母板页中ContentPlaceHolder控件之外的地方加上一个TreeView或者其他可用于显示地图的控件,然后以XML作为数据源,便可在TreeView中显示网站结构,而且这可以在每一个网页中显示(因为用于母板页之外),更改时只要改那个XML就可以了。

 


2 GridView


以下以AccessDataSource为例,只要写少量代码,便实现一个增删查改的页面。

一、先建立解决方案,使用Access做数据库。


二、数据库表中设定字段



三、添加一个ASPX页面,注意输入文件名后要钩选使用MasterPage,然后就可以使用之前设计的MasterPage,在新建页面中,可以看到能设计的部分仅局限于ContentPlaceHolder中,其余部分与母板页相同。

在页面上拖入如下图的控件,作为Insert时信息输入框。

id是自增类型,time则自动获取时间,所以只需要录入titlecontent两个字段的内容,下面是一个Gridview控件,使用数据源AccessDataSource1在添加数据源时记得钩选自动生成SQL语句的选项,能够将增删查改的语句都生成,通过使用AccessDataSource只要在add按钮的事件里写入一行简单的代码,便实现了增删查改。如下图:

编辑和删除功能集成在gridview控件里,不再需要另外写代码了。
AccessDataSource
里要做的设置:

增删查改的四个sql语句都需要设置的,例如插入:

AccessDataSource的详细设置代码:

       <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/data.mdb"
            DeleteCommand
="DELETE FROM Test WHERE (id = ?)" InsertCommand="INSERT INTO Test (title, content, [time]) VALUES (?,?,DATE())"
            SelectCommand
="SELECT * FROM [Test]" UpdateCommand="UPDATE Test SET title = ?, content = ?, [time] = ? WHERE (id = ?)">
           
<InsertParameters>
               
<asp:ControlParameter ControlID="TextBox1" Name="title" PropertyName="Text" />
               
<asp:ControlParameter ControlID="TextBox2" Name="content" PropertyName="Text" />
           
</InsertParameters>
       
</asp:AccessDataSource>


当然,在GirdView中也需要相应的增加修改和删除的按钮,可以通过编辑列来添加CommandField来实现:

GridView的属性里,添加上图标出的两个CommandFieldGridView的代码如下:

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
            DataSourceID
="AccessDataSource1">
           
<Columns>
               
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                    SortExpression
="id" />
               
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title" />
               
<asp:BoundField DataField="content" HeaderText="content" SortExpression="content" />
               
<asp:BoundField DataField="time" HeaderText="time" SortExpression="time" />
               
<asp:CommandField ShowEditButton="True" />
               
<asp:CommandField ShowDeleteButton="True" />
           
</Columns>
       
</asp:GridView>


其余代码

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        AccessDataSource1.SelectCommand="SELECT * FROM [UserTable]";

 

        this.Button3.Attributes.Add("onclick", "return confirm('Are you sure?')");

        //给全删除加验证

    }

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)

    {

        //this.DetailsView1.PageIndex = this.GridView1.SelectedRow.DataItemIndex;

        this.DetailsView1.PageIndex = this.GridView1.SelectedRow.DataItemIndex;

        //TextBox1.Text = this.GridView1.SelectedRow.DataItemIndex.ToString();

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        AccessDataSource1.Insert();

    }

    protected void Button2_Click(object sender, EventArgs e)

    {

        AccessDataSource1.SelectCommand = "select * from [UserTable] where Name LIKE '%'+'" + TextBox3.Text.ToString() + "'+'%' AND Detail LIKE '%'+'"+TextBox4.Text.ToString()+"'+'%'";

    }

    protected void Button3_Click(object sender, EventArgs e)

    {

        //string sqlString = "DELETE FROM [UserTable] WHERE [ID] = ?";

 

        foreach (GridViewRow gr in GridView1.Rows)

        {

            CheckBox chk = (CheckBox)gr.Cells[4].FindControl("Check");

            if (chk.Checked==true)

            {

                //this.GridView1.DeleteRow();

 

                TextBox1.Text = Convert.ToInt32(gr.Cells[0].Text.ToString()).ToString();

                TextBox2.Text = gr.RowIndex.ToString();

 

                this.GridView1.DeleteRow(gr.RowIndex);

 

 

                //Response.Write("<script>alert("+gr.Cells[0].Text.ToString()+");<script>");

            }

        }

    }

 

 

    protected void Button4_Click(object sender, EventArgs e)

    {

        Button but=(Button)this.GridView1.HeaderRow.Cells[4].FindControl("Button4");

        //this.TextBox1.Text = "Click";

 

 

        if (but.Text.Equals("全选"))

        {    

            foreach (GridViewRow gr in this.GridView1.Rows)

            {

                CheckBox chk = (CheckBox)gr.Cells[4].FindControl("Check");

 

                if (chk.Checked == false)

                {

                    chk.Checked = true;

                }

                else

                {

                    chk.Checked = true;

                }

            }

            but.Text = "取消全选";

        }

        else if (but.Text.Equals("取消全选"))

        {

            foreach (GridViewRow gr in this.GridView1.Rows)

            {

                CheckBox chk = (CheckBox)gr.Cells[4].FindControl("Check");

 

                if (chk.Checked == true)

                {

                    chk.Checked = false;

                }

                else

                {

                    chk.Checked = false;

                }

            }

            but.Text = "全选";

        }

    }

}

 

3 IIS配置

安装前先找一张系统安装盘,注意版本一定要和当前系统一致,否则即使可以安装成功,IIS也会无法正常使用,比较保险的方法是先安装了IIS后再安装.NET Framework,如果是先装.NET Framework再装IIS,就必须在.netframework目录下找到aspnet_regiis,运行aspnet_regiis –i

装好后,可以在Web Sites下新建站点,然后将其路径指向Web项目存放目录,也可以就用默认目录然后将项目拷贝到该目录中,在Home Diretory中可以设定部分访问权限,一般只要Read 权限就可以了,然后在Home Diretory-Configuration-Options中的Enable parent paths选上。在Documents中加入**.aspx其中**代表入口页面名。接下来在ASP.NET中将版本改为2.0注意,3.03.5都是基于2.0。最后,再将存放数据库文件的文件夹设为可读写可更改,否则无法对数据进行修改,只能浏览。

AutoCAD .net开发人员手册中文版 文档介绍: 当前版本为20101128版,为第一个CHM版本,如需更新版本,请及时关注http://www.01vb.com,也可以查看CHM文件中的前言部分的版本通知。 因本版本制作仓促,还有如下不完善的内容。 1、还有一章内容没有翻译完成; 2、目录部分和索引部分还是英文版本,但具体页面中全部是中英文对照(有些在提示中有些在翻译上面)。 本《AutoCAD .NET 开发人员手册》由01VB编程站翻译并提供,版权所有,原英文版本版权归原版权所有者所有。本手册为免费版本,可在网上随意发送,但必须注明出处(01VB编程站及网站链接http://www.01vb.com)及翻译者。 序言 自从 AutoCAD 支持使用 .NET 开发以来,所有关于 .NET 的官方开发资料全部是英文版本,给国内开发者的学习带来了一定的阻碍,为了给广大 .NET 爱好者提供更多方便,于是决定翻译一部分资料。 因本人英文水平及CAD二次开发水平有限,翻译的资料中也许有表达不清楚的地方,请大家谅解,也可以在资料底部找到留言的链接,给我留言或直接点击QQ联系我。 01VB编程站是一个非营利性的网站,但是,网站要生存,必须有经济来源。因此,本人在本手册中的投放了广告,但是,广告都是在正文内容的底部,不影响阅读。原则上我不鼓励大家点击上面的广告,除非真的对广告内容感兴趣。因广告给您带来的不便,还望谅解。 最近一段时间,老婆一直生病,始终没有痊愈,在此,我希望老婆能快点儿好起来, 并想对她说一句:老婆,别哭,好好养病,病痛在你身,也疼在我心。你累了,我会背你;钱花光了,我会去挣,身体是第一位的。如果你也想给我老婆送上祝福,请留言,谢谢!(2010.11.24) 翻译历史 2010年8月中旬 开始,期间由于本人生病,中断了几天,还有部分内容没有翻译完成,仍然在翻译中。 11.6 更新《图层状态管理器的使用》部分。 11.07 更新《文字样式》部分 11.08 更新完《创建和编辑AutoCAD图元》这章。 11.11 更新 《标注的概念》 部分 11.12 更新《创建标注》部分 11.15 更新完 《创建引线和注释》 部分 11.20 更新完《形位公差》 部分 11.24 更新到 《在三维空间中编辑 》 11.28 修正手册中的脚本错误,进行CHM格式文档的制作并在01VB编程站首发。 感谢 《AutoCAD .NET 开发人员手册》的翻译过程得到 明经通道 网站 "明经 AutoCAD.NetApi 群"中许多网友的帮助,像 MCCAD、雪山飞狐、Still等等,另外还有其它人记不清楚了,因为太多太多,总之两个字,谢谢。 版权 本开发人员手册版权属01VB编程站网站所有。 翻译者:黄明新(平凡)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值