asp.net五大数据访问控件简单比较
数据绑定控件比较(Reapter\DataList\GridView\DatailsView\FormView):
1.插入功能方面:
DetailsView和FormView具有插入功能,其它控件没有
2.模板
DataList\FormView\Repeater三种必须编辑模板,而
GridView和DetailsView只有在将列转换成模板列以后才会出现各种模板.
3.自动分页功能
GridView ,DetailsView和FormView都是2.0版本新增控件,内置了分页,排序等等功能,
其他需要手工定义
4.数据呈现方式:
GridView,DataList,Repeator用于呈现多列数据,
DetailsView,FormView用于呈现单列数据,即常用的数据明细.
DataList和Reapter都需要编辑模板列,而在模板列当中可以添加TextBox,同时可以指定TextBox的ID从而实现提取用户输入的值,但是DataGrid和GridView两个件是不需要编辑模板的,它的编辑功能是自动生成的我们无法知道那些文本框的ID,也就无法通过ID来获取用户的输入,那么可以通过对单元格的引用来实现:
private void DataGrid1_UpdateCommand(object source,xx)
{
string bkid=DataGrid1.DataKeys[e.Item.ItemIndex].toString();//提取主键
string bktitle=((TextBox)e.Item.Cells[1].Controls[0]).Text;//提取用户的输入
}
一.进入编辑状态:
DataList1.EditItemIndex = e.Item.ItemIndex;
DataGrid1.EditItemIndex = e.Item.ItemIndex;
GridView1.EditIndex = e.NewEditIndex;
DetailsView1.ChangeMode(DetailsViewMode.Edit);//进入编辑状态
DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);//退出编辑状态
二.设置主键:
DataList1.DataKeyField = "bkid";
DataGrid1.DataKeyField = "bkid";
string[] str={"bkid"};
GridView1.DataKeyNames = str;
三.提取主键:
string bkid = DataList1.DataKeys[e.Item.ItemIndex].ToString();//DataList
string bkid = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//DataGrid
string bkid = GridView1.DataKeys[e.RowIndex].Value.ToString();//GridView
string bkid = DetailsView1.DataKey[0].ToString();
四.查找控件:
string bktitle = ((TextBox)e.Item.FindControl("txtTile")).Text;//DataList
string bktitle = ((TextBox)e.Item.Cells[1].Controls[0]).Text;//DataGrid
string bktitle = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
string bktitle = ((TextBox)DetailsView1.
相关文档:
如果你已经有较多的面向对象开发经验,跳过以下这两步:
第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。 ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!
第二步 对.NET Framework类库有一定的了解 可以通过开发Windows Form应用程 ......
要使 ASP.NET Web 应用程序能够使用客户端证书,您必须在本地计算机存储中安装客户端证书。如果您在本地计算机存储中安装客户端证书,则该客户端证书仅对管理员组中的用户帐户和安装该客户端证书的用户可用。因此,您必须向用于运行 ASP.NET Web 应用程序的用户帐户授权,使其能够访问客户端证书。
注意:必须安装 Microso ......
在学习过程中需要用到Cookie文件,在网上找了些相关的知识,学习了一部分,现记录如下:
(1)
HttpCookie myHttpCookie = new HttpCookie("MyWebSite");
DateTime myDateTime = System.DateTime.Now;
TimeSpan myTimeSpan = new TimeSpan();
if (rbHour.Checked == true)
{
myTimeSpan = new Ti ......
在学习过程中发现如果要上传的照片很大的话,速度会很慢,所以采用了在上传照片时同时上传缩略图的方式,这样就可以既不影响多个图片的浏览,又不影响查看具体的图片。
需要用到的命名空间:
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
#region 保存上传文件,方法名:UploadSave(string ......
在Web开发程序中,往往由于种种原因,客户会多次操作页面导致数据冗余或不一致, 在ASP.NET AJAX出现之前可以通过对__dopostback()的调用等方法也可以防止页面多次提交。
在ASP.NET AJAX中的页面客户端中有一个叫onInitializeRequest的事件,它在页面初始化之前触发,可以对页面的提交事件进行控制,并且可以调用该事件参 ......