- 浏览: 82007 次
- 性别:
- 来自: dg
文章分类
- 全部博客 (70)
- [随笔分类]DB(数据库) (18)
- c# (1)
- 实用参考代码 (1)
- 默认收藏夹 (9)
- [网站分类]6.读书区(技术书籍阅读心得、书籍推荐) (1)
- xml&web服务 (1)
- [随笔分类]Asp.net (18)
- C# BLOG (1)
- 技术仓库 (0)
- .net (1)
- 编程技巧 (1)
- [随笔分类].Net Framework (1)
- [随笔分类]程序人生(非技术) (1)
- [随笔分类]其他技术类 (1)
- [随笔分类]WAP (1)
- 收藏夹 (1)
- 其他 (1)
- DotNet技术 (4)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (4)
- [网站分类]7.提问区(建议在<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>中提问) (2)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (1)
- [随笔分类]Javascript & Css & Html (1)
最新评论
ASP.NET StartKit Commerce简单,容易理解。
我认为是初次学习.NET代码的首选,不怕各位笑话,我曾经完整阅读该项目代码3次。
那么,通过阅读我们能学习到什么知识呢?请看我下面的总结:
1。多层结构的实现
依我见是2层结构:PL层和BLL层(没有明显的DAL层,DAL和BLL共同组成BLL层)。但是我们可以学习到Db过程的调用方法。
2。Web服务的简单使用
3。Web用户控件的使用
4。数据绑定的相关知识
让我们先看该项目中的一段代码:
<asp:HyperLink cssclass="MenuSelected" id="HyperLink2" Text='<%# DataBinder.Eval(Container.DataItem, "CategoryName") %>' NavigateUrl='<%# "productslist.aspx?CategoryID=" + DataBinder.Eval(Container.DataItem, "CategoryID") + "&selection=" +
Container.ItemIndex %>' runat="server" />
说明:
(1)数据绑定用单引号,单引号中的字符用双引号。
(2)特别注意属性:Container.ItemIndex,它生成的是每一项的ID,它是从零开始的。功能类似MS SQL的IDENTITY(0,1).想想我以前的项目为了展现每一行的索引,往往利用在DB中创建临时表生成行索引,再绑定数据的做法真愚。
5。基于窗体的验证
在Web.config文件中,我们可以看到如下2段代码:
<authentication mode="Forms">
<forms name="CommerceAuth" loginUrl="login.aspx" protection="All" path="/" />
</authentication>
<location path="OrderDetails.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
说明:这样就禁止未通过登陆验证的用户访问页面:OrderDetails.aspx,自动将未登陆用户引导到页面login.aspx进行登陆验证
6.购物车的实现
购物车是电子商务站的典型功能。在此项目中我们可以看到购物车的增加,删除和修改功能的典型操作。同时也学习控件的一些经典使用方法
。
让我们先看代码:
<asp:DataGrid id=MyList runat="server" BorderColor="black" GridLines="Vertical" cellpadding="4" cellspacing="0"
DataKeyField="Quantity" AutoGenerateColumns="false">
......
</asp:DataGrid>
利用DataKeyField属性绑定数据源的字段Quantity,也就是此项目中每个商品的购买数量。
类System.Web.UI.WebControls.BaseDataList的属性DataKeyField是获取或设置由 DataSource 属性指定的数据源中的键字段。
同时DataGrid和DataList都是BaseDataList的子类。
让我们再看下面代码:此代码是购物车的修改方法实现。
ASPNET.StarterKit.Commerce.ShoppingCartDB cart = new ASPNET.StarterKit.Commerce.ShoppingCartDB();
// Obtain current user's shopping cart ID
String cartId = cart.GetShoppingCartId();
// Iterate through all rows within shopping cart list
for (int i=0; i < MyList.Items.Count; i++) {
// Obtain references to row's controls
TextBox quantityTxt = (TextBox) MyList.Items[i].FindControl("Quantity");
CheckBox remove = (CheckBox) MyList.Items[i].FindControl("Remove");
// Wrap in try/catch block to catch errors in the event that someone types in
// an invalid value for quantity
int quantity;
try {
quantity = Int32.Parse(quantityTxt.Text);
// If the quantity field is changed or delete is checked
if (quantity != (int)MyList.DataKeys[i] || remove.Checked == true) {
Label lblProductID = (Label) MyList.Items[i].FindControl("ProductID");
if (quantity == 0 || remove.Checked == true) {
cart.RemoveItem(cartId, Int32.Parse(lblProductID.Text));
}
else {
cart.UpdateItem(cartId, Int32.Parse(lblProductID.Text),quantity);
}
}
}
catch {
MyError.Text = "There has been a problem with one or more of your inputs.";
}
}
}
说明:
(1)我们利用(int)MyList.DataKeys[i]取出绑定在每一行的商品购买数量值
(2)利用方法FindControl()在当前的命名容器中搜索指定的服务器控件。
7。ms sql中定时任务的实现
利用MS SQL的JOB功能实现在特定时间时自动运行过程ShoppingCartRemoveAbandoned,以删除购物车表(CMRC_ShoppingCart)中的多余数据。
8。全球化的相关知识
见Global.asax.cs中代码:
{
try
{
if (Request.UserLanguages != null)
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);
else
// Default to English if there are no user languages
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
}
catch (Exception ex)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");
}
}
说明:全球化是为多种文化用户支持地方化用户界面和地方性数据应用程序的设计和开发过程。在.NET 构架中,CultureInfo 类体现了一个特
定文化的信息。这个信息包括书写系统、所使用的历法、日期和时间格式风格、数字和货币风格以及分类原则。地方化是为应用程序支持的每
种文化将应用程序资源转变为本地化版本的过程。当前文化在每次用户向应用程序请求页面时根据浏览器设置修改。
9。其他知识点:
(1)缓存的使用
(2)Web.config文件中自定义节点的设置和读取
等等。
本人第一次写阅读总结,由于水平有效可能有误,希望大家多多指出。谢谢。
下次将分类总结ASP.NET StartKit TimeTracker的阅读心得。
发表评论
-
图片问题?
2004-06-12 00:58 644图片问题? 例如我有一个ASP.NET工程在目录C:\BBS下 ... -
用Javascript在客户端实现遍历datagrid,DataList控件,像MSN中的全选
2004-07-04 21:56 1456刚刚看了..NET中遍历DataList控件,像MSN中的全选 ... -
ASP.NET状态管理之一(概括篇)
2004-07-14 00:50 670每次将网页发送到服务器时,都会创建网页类的一个新实例。在传统的 ... -
ASP.NET状态管理之二(查询字苻串QueryString)
2004-07-14 01:25 827查询字苻串是追加在URL后的数据(也是我常用的)例如:http ... -
ASP.NET状态管理之三(隐藏域HiddenField)
2004-07-14 01:50 2243ASP.NET 允许您将信息存储在 HiddenFiel ... -
ASP.NET状态管理之四(暂存状态HttpContext.Items)
2004-07-14 17:47 1073ASP.NET提供一个类System.Web.HttpCont ... -
ASP.NET状态管理之七(其他物理数据存放媒体)
2004-07-15 23:25 634ASP.NET状态存储还可以存放在数据库,XML文件,文本文件 ... -
ASP.NET状态管理之六(缓存Cache)
2004-07-15 23:44 1508ASP.NET 提供一个功能完整的缓存引擎,页面可使用该引擎通 ... -
Web.config文件中</appSettings>节点的配置数值读取的2种方法,哪种更快?
2004-10-18 09:37 2411<appSettings> <add key ... -
准备精读开源的.NET代码,希望能坚持
2004-12-08 12:53 1018近来无事,把开源的.NET全部找出来,准备精读。 阅读同时想把 ... -
asp.net能实现身份认证的EMAIL发送方法(c#版本)
2004-12-28 11:15 4911public void sendMail() ... -
代码阅读总结之ASP.NET StartKit TimeTracker(角色权限之捉虫笔记)
2005-01-17 14:56 685在ASP.NET StartKit TimeTracker中由 ... -
代码阅读总结之ASP.NET StartKit TimeTracker(应用程序路径之处理笔记)
2005-01-24 17:34 666在开发中我们为了整个程序目录结构清晰化,望望会建立许多不同的文 ... -
代码阅读总结之ASP.NET StartKit TimeTracker(数据绑定之困惑笔记)
2005-01-24 18:00 693以前在项目中数据绑定一直用<%# %> 今天在A ... -
Asp.net未处理异常的2种解决方式(个人总结篇)
2005-02-21 15:34 858Asp.net中引发未处理的异常时,我们怎么处理。我总结了2种 ... -
代码阅读总结之Fitch and Mather 7.0(资源文件Resource随笔)
2005-04-21 18:03 694在Fitch and Mather 7.0中利用了大量的资源文 ... -
代码阅读总结之Fitch and Mather 7.0(自定义字符串缓存页)
2005-10-18 13:29 786前段时间工作比较忙,没时间读代码,这几天有空,正好又来静读代码 ...
相关推荐
【标题】"网站框架(基于ASP.net startkit)" 指的是一个使用ASP.NET StartKit构建的船务公司网站的基础架构。ASP.NET StartKit是由微软提供的一个开源项目模板,用于快速搭建Web应用程序,特别是针对ASP.NET Core平台...
### C51 StartKit 学习板知识点解析 #### 一、C51 StartKit 学习板概述 C51 StartKit是一款专为初学者设计的51单片机及C51语言入门学习系统,由西安电子科技大学测控技术与仪器教研中心研发。该学习板采用低成本的...
在本文中,我们将深入探讨"Fusion Startkit"高级实验例程,这是一套专为Actel FPGA(现场可编程门阵列)设计的实践教程,适用于周立功Fusion Startkit开发板。此套例程旨在帮助用户在Libero IDE 8.0环境下提升FPGA...
【StartKit串口调试助手使用说明1】 StartKit串口调试助手是一款专为物联网设备调试设计的工具,它提供了一种简单易用的界面来配置串口通信参数,并且具有丰富的菜单功能,如日志管理和AT命令操作。下面将详细介绍...
周立功Fusion startkit资料的实验例程的基础实验部分,libero ide8.0版本下运行
周立功Fusion StartKit是一款专门用于FPGA(Field-Programmable Gate Array)开发的实验平台,旨在帮助用户快速理解和实践FPGA设计。ADC(Analog-to-Digital Converter)是该开发板上的一个重要组件,它能够将模拟...
startKIT 开发板示例 最新发布: 1.2.0rc0 维护者: 达维尔克斯莫斯 描述: startKIT 示例程序 所需软件(依赖项) sc_i2s ( :xcore/sc_i2s) sc_i2c ( :xcore/sc_i2c) sc_slicekit_support ( ) sw_audio_...
【基于开发板的开发指南StartKit_NB_V1.0】是中国电信集团公司于2019年9月发布的一份详细指导文档,旨在帮助开发者利用特定的开发板进行NB-IoT(窄带物联网)通信卡的开发工作。该文档主要分为六个部分,包括清单...
周立功公司是一家知名的电子技术企业,提供各种FPGA开发工具和解决方案,包括Fusion StartKit开发板。这个"electric current"标签的实验例程是针对FPGA开发板上的电流监控功能进行的,旨在帮助开发者学习如何利用...
### ProASIC3 StartKit开发板原理图解析 #### 核心概述 ProASIC3 StartKit是一款专为Actel公司的ProASIC3系列FPGA设计的开发板。该开发板旨在为工程师提供一个易于使用的平台,以便进行原型设计、评估以及开发基于...
周立功是一家专注于嵌入式系统与FPGA技术的公司,他们推出的Fusion StartKit是专为FPGA初学者和开发者设计的一款开发板,集成了丰富的功能和实验例程,帮助用户快速上手FPGA应用。 本实验例程重点围绕"Flash Memory...
ACTEL A3P StartKit是一款基于ACTEL A3P1000 FPGA的开发套件,为FPGA设计者提供了一站式的硬件和软件开发环境。这个开发套件旨在简化A3P1000 FPGA的评估、学习和设计过程,帮助工程师快速实现其创新项目。其中包含的...
标题中的“周立功Fusion StartKit,fpga开发板的实验例程FlashROM”表明,这个压缩包文件包含的是与周立功Fusion StartKit开发板相关的FlashROM实验代码。FlashROM是一种非易失性存储器,能够在断电后保持数据,常...
- 输入代码库名称,例如“StartKit”,并选择是否创建默认的`trunk`, `branches`, `tags`目录。 - **代码库结构**: - 如果选中创建默认目录,则会在代码库内部自动创建上述三个目录。如果不选中,则创建空代码库...
在弹出的窗口中输入服务器地址(如`http://zt.net.henu.edu.cn/svn/StartKit`),并指定目标代码库路径(如`StartKit`)。首次签入时不勾选左下角的复选框,但之后提交更新时应保持勾选状态以便记录修改历史。 点击...
- **通过Web访问**:浏览器输入http://zt.net.henu.edu.cn/svn/StartKit/,验证后可浏览代码库内容。 6. **文件状态与操作** - 修改后的文件图标会改变,表示文件已更改。 - 提交修改:在已修改的文件或文件夹上...