绑定控件gridview的功能(Visual Studio里的GridView控件用法)

本文目录
- Visual Studio里的GridView控件用法
- 能否介绍一款C# .NET下的表格控件
- asp.net2.0数据访问控件包括哪些及其特点
- DropList控件绑定到Gridview中
- 数据绑定控件的区别
Visual Studio里的GridView控件用法
通过GridView 的 DataBound事件, 为每一行添加 点击事件:
Entity entity = e.Row.DataItem as Entity; //Entity是你绑定到GridView的对象
string workPath = entity.WordPath;
e.Row.Attribute.Add("onclick","window.open(’" + workPath + "’)");
能否介绍一款C# .NET下的表格控件
你好,
推荐使用 Spread .NET 6 表格控件,是一款有良好Excel兼容性的电子表格控件
1.数据绑定:支持整体绑定好区域绑定。支持代码绑定、和设计器绑定。
2.可以设置列标题,支持单元格 tooltip。
3.可以根据数据类型自动生成单元格类型,如日期类型和button类型等。
并且有扎实的中文技术团队进行在线支持:可以搜索“葡萄城产品技术社区”,在论坛中提交需求。
***隐藏网址***
有其他问题可以给我留言
asp.net2.0数据访问控件包括哪些及其特点
DataGrid 控件仍需要编写大量自定义代码来处理普通操作,如分页、排序、和删除数据。例如,当用户单击以保存或取消更改时,DataGrid 控件能够引发事件但不提供更多的功能。如果要将更改存储到持续媒介(如一个数据库)之中,则必须自己处理 UpdateCommand 事件,检索更改后的值,编写一条 SQL 命令,然后从该处提交更新。
DataGrid 控件限制普通数据操作的引发事件,因为它是一个数据源不可知的控件,能够绑定到任何可枚举的数据对象。执行数据操作(如更新或删除)需要直接连接到一个特定的数据源。在 ASP.NET 1.x 中,则通过编写特定于应用程序的 ADO.NET 代码解决这个问题的。
ASP.NET 2.0 改进了数据绑定体系结构,引入了新的系列组件(数据源对象)作为数据绑定控件与 ADO.NET 对象之间的桥梁。这些源对象提升了一个略为不同的编程模型,提供了新功能和新成员。您的 ASP.NET 2.0 应用程序应该使用最新的网格控件 — GridView,显示数据报告。与之相似的 DataGrid 控件仍然支持,但 DataGrid 不能充分利用数据源组件的特定功能。
GridView 控件是 DataGrid 的接替者,并从几个方面扩展了后者的功能。首先,它完全支持数据源组件,能够自动处理诸如分页、排序和等数据操作,前提是绑定的数据源对象支持这些操作。另外,GridView 控件有一些比 DataGrid 优越的功能上的改进。特别是,它支持多个主键字段,公开了一些用户界面的改进功能和一个处理与取消事件的新模型。
GridView 附带了一对互补的视图控件:DetailsView 和 FormView.通过这些控件的组合,您能够轻松地建立主/详细视图,而只需少量代码,有时根本不需要代码。
GridView 与 DataGrid
ASP.NET 2.0 中数据绑定控件的类层次结构比 ASP.NET 1.x 中的更一致。在 2.0 版本中,所有控件无论有什么样的实际实现过程和用户界面特点,均从同一个基类(BaseDataBoundControl 类)派生。图 1 显示新的类关系图。DataGrid 和其他 1.x 版本的控件(如 Repeater 和 DataList)没有包含在该关系图中。这些现有控件的继承树与 ASP.NET 1.x 的相同。特别是,Repeater 继承了 WebControl,而 DataList 和 DataGrid 继承了 BaseDataList.如图 1 所示,GridView 是一个复合数据绑定控件,它与其他所有数据绑定控件(包括 DropDownList、DetailsView 和 ListBox)共享一组方法和属性。
GridView 和 DataGrid 控件的高级功能相似,但基础却不同。GridView 尽可能地保留了 DataGrid 的对象模型,以便轻松地从现有页面进行移植。但是,基于 DataGrid 的代码与新的基于 GridView 的代码不可能 100% 兼容。
DataGrid 与 GridView 控件的另一个主要差异在于自适应用户界面。与 1.x 版本的 DataGrid 不同的是,GridView 也能在移动设备上显示。换句话说,您能够使用相同的用于桌面页面的网格控件在移动设备上生成报告。2.0 版本的 DataGrid 也能自适应地显示,但是它的 UI 功能没有 GridView 丰富。
在 ASP.NET 2.0 中,改进后的 DataGrid 控件支持诸如主题和个性化等通用的控件功能。此外,新的 DataGrid 控件可由一个数据源控件填充。但要记住,绑定到数据源对象的 DataGrid 只能用于读取数据。要实际修改底层数据源,仍然需要一些用户定义的代码。而 GridView 控件可以利用底层数据源的功能并自动删除或更新记录。注意,GridView 控件也支持传统的基于 DataSource 属性和 DataBind 方法的绑定机制。尽管完全支持这种绑定机制,但是不鼓励使用这样的编程实践方法。
GridView 和数据源控件
那么,数据源控件是什么?我在 2004 年 6 月一期的 MSDN?Magazine 中详细介绍了 ASP.NET 2.0 的这项流行的新功能。简言之,一个数据源控件就是一组 Microsoft? .NET Framework 类,它有利于数据存储和数据绑定控件之间的双向绑定。现有的控件(如 DataGrid)以及新的数据绑定控件(如 GridView),尽管绑定能力不同,但都能绑定到一个数据源。
一个数据源控件代表了数据源的主要功能:选择、插入、更新和删除。数据源控件能代表任何数据源:从关系数据源库到 XML 文件,从流数据到业务对象。如果简要介绍能让您想起 .NET 的托管提供程序,请参见图 2.
图 2 数据源控件、GridView 和数据源
数据源控件可以位于一些 .NET 数据提供程序的上层,在数据绑定控件和数据源之间形成一个中间层。数据源控件也会公开一个提供基本操作的公共接口。一些数据绑定控件 — 特别是 GridView 控件,将这些命令与其他与数据有关的操作一起,绑定到适当的自动。
数据源控件通过其属性和方法,将绑定内容以一组命名的视图形式公开。IDataSource 接口提供从数据源检索数据视图的基本功能集,所有数据源控件都实现了这个接口。ASP.NET 2.0 提供一些内置数据源控件,如图 3 所列。图 3列出的数据源控件属于两类:列表和分层组件。SiteMapDataSource 和 XmlDataSource 组件是分层数据源控件,用于像 TreeView 和 Menu 控件这样的分层组件。其他各种组件用于管理列表数据。
图 4 中的代码说明如何在一个示例页面上将 GridView 和 DataGrid 绑定到同一个数据源控件。在 ASP.NET 2.0 中,这是推荐的数据绑定方法。SqlDataSource 控件的特点是一个 ConnectionString 属性加上 SelectCommand、UpdateCommand、InsertCommand 和 DeleteCommand 属性的任意组合。所有属性都是字符串形式,并且引用带有可选参数的命令文本:
《asp:SqlDataSource runat="server"
ID="MySource"
ConnectionString="SERVER=(local);
DATABASE=northwind;Integrated Security=SSPI;"
SelectCommand="SELECT * FROM employees WHERE employeeid 》 @MinID"》
《SelectParameters》
《asp:ControlParameter Name="MinID"
ControlId="EmpID"
PropertyName="Text" /》
《/SelectParameters》
《/asp:SqlDataSource》
每个数据源控件由唯一的 ID 表示。ID 是连结数据绑定控件和数据源控件之间的纽带。通过 DataSourceId 属性将 GridView 绑定到一个数据源控件。例如,每当网格需要获取数据时,就执行与 SQLDataSource 控件相关联的 SelectCommand SQL 命令。当网格需要更新或删除一条记录时,就执行相应的 UpdateCommand 或 DeleteCommand SQL 命令。如果不存在这样的命令,则引发一个异常。在内部,当用户删除或更新一条记录时,GridView 就像 1.x 版本的 DataGrid 一样引发事件。但是与 DataGrid 不同的是,GridView 为这些事件定义内部的处理程序。默认的处理程序检索绑定数据源定义的命令来处理和执行这些操作。图 4说明,在保持网格显示或更新数据的标记后无需编写代码。在更复杂的情况下,您可能需要编写一些代码。
DropList控件绑定到Gridview中
这个你可以直接在GridView的RowDataBound事件中绑定DropdownList的数据,通过var
ddl
=
e.Row.FindControl("DropdownList")
as
DropdownList,
然后ddl.DataSource
=
数据源,指定好你的Text和Value执行DataBind方法就行了,逻辑很简单,在保存GridView的时候可以直接通过遍历GridView的行,通过行找到该行的dropdownList的selectedValue的值就行,思路就是这样,具体的细节需要你在具体项目中实现。
数据绑定控件的区别
新注册的?没加分呢-_-!!辛苦一点多发了,要自己看啊,要不浪费了~
各种数据绑定控件间的区别
各种数据绑定控件间的区别 控件 主要数据结构 功能 描述和主要用途
GridView 表 读取与 每个字段一列
每个字段值对应于自已的一个单元格
在网络中显示多条记录
现有记录
DataList 表或树 读取和 所有字段在一个单元格中
一个单元格等于一条记录
在网格中显示多条记录
在GridView创建新记录
Repeater 表或树 只读 所有字段在一个单元格中
一个单元格等于一条记录
在网格中显示多条记录.为GridView创建新记录
DetailView 表或树 读取与、创建 显示单个记录
提供默认结构
现有记录
创建新记录
FormView 表或树 读取与、创建 显示单个记录
没有默认结构
现有记录
创建新记录
DropDownList和ListBox 表或树 只读 列出字段
让用户选择
显示供用户选择的数据
SiteMapPath 树 只读 列出主页和当前页面之间的页面名称
用于确定当前所处的站点位置
Menu 树 只读 显示根节点,能够选择一次展开一个子节点
用于显示选择的菜单
TreeView 树 只读 显示根节点,能够选择一次展开一个子节点
用于同时显示多个子节点
数据绑定控件比较(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.toString();//提取主键
string bktitle=((TextBox)e.Item.Cells).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.ToString();//DataList
string bkid = DataGrid1.DataKeys.ToString();//DataGrid
string bkid = GridView1.DataKeys.Value.ToString();//GridView
string bkid = DetailsView1.DataKey.ToString();
四.查找控件:
string bktitle = ((TextBox)e.Item.FindControl("txtTile")).Text;//DataList
string bktitle = ((TextBox)e.Item.Cells).Text;//DataGrid
string bktitle = ((TextBox)GridView1.Rows).Text;
string bktitle = ((TextBox)DetailsView1.Rows).Text;
注意查找控件有两种方法:(各数据绑定控件的都可以用下面两种方法进行查找)
1.如果知道控件的ID可以用这种方法
((TextBox)e.Item.FindControl("txtTile")).Text;//这是查找
2.如果不知道控件的ID可用这种方法
((TextBox)e.Item.Cells).Text;//这是索引
五.给删除按钮添加确认:
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lbtn =(LinkButton) e.Item.FindControl("lbtndelete");
lbtn.Attributes.Add("OnClick","return confirm(‘确定要删除吗?‘)");
}
}
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
LinkButton lbtn = (LinkButton)e.Item.Cells;
lbtn.Attributes.Add("OnClick","return confirm(‘确认删除?‘)");
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType== DataControlRowType.DataRow)
{
string strid = e.Row.Cells.Text;//获取第一行的字段值;
e.Row.Cells.Attributes.Add("OnClick", "return confirm(‘确认删除\""+strid+"\"?‘)");
//用了两个转义符将第一列的值用引号括起来,注意转义符后面一个将不被解释,是直接放上去;
}
}

更多文章:
amaze ui 树状结构导航(网站结构怎么做SEO,树状结构与扁平结构的区别)
2026年4月15日 09:00
jquery多级联动下拉菜单(jQuery实现动态级联选择问题,比如3个下拉框,选择第一个其他的2个选项自动把内容选中.)
2025年9月15日 16:15
vue页面之间回调(vue.http 怎么定义jsonp的回调名)
2026年7月27日 06:30
a和b的ascii码(英文字母A的ASCII码值十进制的是65,那么B的ASCII码是什么)
2026年1月28日 12:30
学51单片机编程选用Keil uvision 和medwin哪个软件更好?为什么没有国产的C/C++的编译器
2025年10月8日 05:45
用fprintf为什么写不进文件(急求C语言大神,下面的程序运行正常也能读取文件,但是无法向文件中写入,问题出在哪)
2025年11月22日 18:45
登陆界面背景图(Win7登录界面背景图在哪里改(输入密码那))
2026年7月27日 18:00
我的世界displayname(minecraft我的世界怎样给物品改名)
2026年1月14日 14:45
shell脚本写加减乘除运算(用shell做个加减乘除运算)
2025年6月20日 21:30
sql语句查询男女生人数(SQL查询,按性别显示学生信息,并分别汇总男生女生人数)
2026年7月25日 08:00












