DataGrid

2010年7月19日星期一

议程

列表控件概述

列表控件是如何工作的

DataGrid基本使用

DataGrid常用的使用技巧

DataGrid其他使用技巧

 

列表控件概述

能够取得数据集,并自动遍历它们

比其他控件要复杂得多

这些控件把绑定到它们的数据通过HTML教程表现出来

常用作其他实际显示数据的控件的容器

功能强大、较复杂

用于以下应用:报表、购物推车、产品列表、查询结果显示、导航菜单

 

列表控件是如何工作的

DataSource属性:最简单地讲,就是一组相同特征的对象或者一个相同对象的集合

Items集合:每一个列表绑定控件都有一个Items集合,集合中的每一个Item是DataSource所指定的一个对象

 

数据绑定

列表控件基于ASP.NET框架,需要你明确地进行数据绑定。这就意味着:只有当DataBind方法被调用时,才真正需要轮询其DataSource所代表的数据。

当DataBind方法被调用时,列表绑定控件将轮询DataSource,创建Items集合,并从DataSource取回数据,以初始化Items集合。

 

DataGrid基本使用

DataGrid控件可用于创建各种样式的表格。它还支持对项目的选择和操作,是最复杂、功能最强大!

DataGrid的AutoGenerateColumns属性缺省是True。当AutoGenerateColumns为True时,DataGrid将检查其数据源和其对象映射,并为每一个共有属性或者字段创建一个列。

每一个自动产生的列成为一个BoundColumn(绑定列)。绑定列根据其数据表对应列的数据类型,自动将其转化为一个字符串,显示在表格的一个单元中。

 

DataGrid的使用

Private void dgShow_EditCommand(object source,System.Web.UI.WebControls.DataGridCommandEvent e)

{

dgShow.EditItemIndex=e.Item.ItemIndex;

BindData();

}

Private void dgShow_cancelCommand(object source,System.Web.UI.WebControls. DataGridCommandEvent e)

{

dgShow.EditItemIndex=-1;

BindData();

}

Private void dgShow_PageIndexChanged(object source,System.Web.UI.WebControls. DataGridCommandEvent e)

{

dgShow.CurrentPageIndex=e.NewPageIndex;

BindData();

}

Private void dgShow_UpdateCommand(object source,System.Web.UI.WebControls. DataGridCommandEvent e)

{

 string strStudentID=e.Item.Cells[0].Text;

 string strName=((TextBox)(e.Item.Cells[1].Controls[0])).Text;

 string strPass=((TextBox)(e.Item.Cells[2].Controls[0])).Text;

 string strSex=((CheckBox)(e.Item.Cells[3].FindControl(“cbSex”))).Checked?”1”:”0”;

 string strBirthday=((TextBox)(e.Item.Cells[4].Controls[0])).Text;

 string strEmail=((TextBox)(e.Item.Cells[5].Controls[0])).Text;

 string strSql=”update tbStudentinfo set StudentName=’”+strName+”’,StudentPass=’”+strPass+”’”;

strSql+=”,Sex=”+strSex+”,Birthday=’”+strBirthday+”’,Email=’”+strEmail+”’ where StudentID =’”+ strStudentID +”’”;

ExecuteSql(strSql);

dgShow.EditItemIndex=-1;

BindData();

}

Private void BindData()

{

string strCon=System.Configuration.ConfigurationSettings.AppSettings[“DSN”];

SqlConnection con=new SqlConnection(strCon);

SqlDataAdapter da=new SqlDataAdapter(“select * from tbStudentinfo”,con);

DataSet ds=new DataSet();

Ds.Fill(ds,”studentinfo”);

dgShow.DataSource=ds.Tables[“studentinfo”].DefaultView;

dgShow.DataBind();

foreach(DataGridItem dgi in dgShow.Items)

{

DropDownList ddI=(DropDownList)dgi.FindControl(“ddlSexI”);

If(ddI!=null)

{

bool bSex=(bool)ds.Tables[“studentinfo”].Rows[dgi.ItemIndex][“Sex”];

If(bSex)

ddI.SelectedIndex=0;

else

ddI.SelectedIndex=1;

}

DropDownList ddE=(DropDownList)dgi.FindControl(“ddlSexE”);

If(ddE!=null)

{

bool bSex=(bool)ds.Tables[“studentinfo”].Rows[dgi.ItemIndex][“Sex”];

If(bSex)

ddE.SelectedIndex=0;

else

ddE.SelectedIndex=1;

}

}

}

Private void dgShow_ItemCreated(object sender,System.Web.UI.WebControls. DataGridCommandEvent e)

{

Switch(e.Item.ItemType)

{

Case ListItemType.Item:

Case ListItemType.EditItem:

Case ListItemType.AlternatingItem:

Button myDeleteButton=(Button)e.Item.FindControl(“btnDelete”);

myDeleteButton.Text=”delete this row”;

myDeleteButton.Attributes.Add(“onclick”,”return confirm(‘Do you want to delete the”+e.ItemIndex.To string()+”’”);

break;

}

}

Private void dgShow_ItemCommand(object source,System.Web.UI.WebControls. DataGridCommandEvent e)

{

If(e.CommandName==”UserDelete”)

dgShow_DeleteCommand(source,e);

}

Public void CheckAll(object sender,System.EventArgs e)

{

CheckBox cbAll=(CheckBox)sender;

If(cbAll.Text==”quan xuan”)

{

Foreach(DataGridItem dgi in dgShow.Items)

{

CheckBox cb=(CheckBox)dgi.FindControl(“cbSelect”);

Cb.Checked=cbAll.Checked;

}

}

}

Private void btnDelete_Click(object sender,System.EventArgs e)

{

Foreach(DataGridIem dgi in dgShow.Items)

{

CheckBox cb=(CheckBox)dgi.FindControl(“cbSelect”);

If(cb.Checked)

{

Int nID=int.Parse(dgi.Cells[0].Text);

string strSql=”delete from tbStudentinfo where studentid=’”++”’”;

ExecuteSql(strSql);

}

dgShow.CurrentPageIndex=0;

BindData();

}

}

 

DataGrid常用的使用技巧

日期的显示

传递DataGrid中的值

在DataGrid里添加确认删除的对话框

格式化DataGrid:将数据源中的0,1值转换成实际的文字

在DataGrid中选择,确认,删除多行复选框列表

利用dropdownlist下拉列表框,显示数据库表中的某个字段

取得DataGrid里的checkbox返回值

DataGrid中加入统计值

 

DataGrid其他使用技巧

如何用程序隐藏和显示DataGrid中的一列

如何控制DataGrid里编辑功能出现的TextBox的宽度?

DataGrid只显示DataSet中多列数据中的一列

DataGrid中的数据导出到Microsoft Excel

 

Private void btnMIME_Click(object sender,System.EventArgs e)

{

Response.ContentType=”application/vnd.ms-excel”;

Response.Charset=””;

This.EnableViewState=false;

System.IO.StringWriter hw=new System.IO.StringWriter();

System.Web.UI.HtmlTextWriter hw=new System.Web.UI.HtmlTextWriter(sw);

dgShow.RenderControl(hw);

Response.Write(sw.ToString());

Response.End();

}

 

小结

列表控件概述

列表控件是如何工作的

DataGrid基本使用

DataGrid常用的使用技巧

DataGrid其他使用技巧

时间: 2024-10-31 01:21:26

DataGrid的相关文章

固定表头-在ASP.NET页面中,固定DATAGRID表头出现的问题

问题描述 在ASP.NET页面中,固定DATAGRID表头出现的问题 使用DIV标签加js纯页面固定表头,实际上就是将表头获取出来填充到一个DIV中,问题就是如何将表头和表中的内容对齐,特别是在表中数据动态改变列宽不固定的时候

DataGrid同时具有分页和排序功能及注意点

datagrid|分页|排序 当DataGrid同时具有分页和排序功能时应注意在重新绑定数据源时,MyDataGrid.CurrentPageIndex=0;下面给实现以上功能的原码,也就不多缀了aspx中包含有DataGrid和控制其数据源变化的dropdownlistDataGrid代码 <asp:datagrid id="MyDataGrid" runat="server" BorderColor="#CCCCCC" Font-Siz

感受DataGrid给数据操作带来的便利(3)

datagrid|数据 第三节:快速分页 在第二节中,我体会到了DataGrid在定制外观上的快捷和方便,这一节,我又学会了快速的将数据分页. 我们在查询数据库的时候,往往不会用一个页面来显示所有的数据,而是对数据进行分页显示.记得在asp中,我们编写一个分页的页面非常麻烦,当我,学会了用DataGrid来Render数据的时候,我兴奋不已,因为,它做数据分页原来这么简单. 还是打开属性生成器(或者修改"分页"类的属性),这个时候你肯定知道要去选择左侧的"分页"分支

怎样使用DataGrid控件

datagrid|datagrid控件 [Visual Basic, C#, JScript] 下面的示例展示如何使用 DataGrid 控件来显示数据源中的项.[Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %><%@ Import Namespace="System.Data" %> <html> <script languag

WPF 无法添加DataGrid

问题描述 WPF 无法添加DataGrid 就这个问题,我想把test拖到UserControl中,然后就提示如图的问题.上面的diagnosis$名称的文件开始也是这个问题,后来莫名其妙就能拖进来了.急啊,请教! 解决方案 WPF DataGrid 控件默认空白行无法显示

数据库-datagrid的数据怎么保存到文本文档中啊?

问题描述 datagrid的数据怎么保存到文本文档中啊? 用adodc连接数据库,datagrid显示数据,然后要保存在文本文档中,各位大神教教我应该怎么做 解决方案 直接循环dataset,然后调用open print等语句写文本文件

关于多层repeater,datagrid,datalist嵌套的示例

datagrid|示例 常常在CSDN上看到有网友问如何才能实现Repeater,DataList, DataGrid的嵌套问题,下面给出一个3层嵌套的示例,可以无限级嵌套下去 <ASP:REPEATER id="rpt_catalog" onitemdatabound="rpt_catalog_OnItemDataBound" runat="server"> <ITEMTEMPLATE>最顶层repeater,index

将某一目录下的所有相同格式的 XML文件绑定到不同的DataGrid

datagrid|xml 将某一目录下的所有相同格式的 XML文件绑定到不同的DataGrid的方法. <%@ Page Language="vb"%><%@ Import NameSpace = "System" %><%@ Import NameSpace = "System.Xml" %><%@ Import NameSpace = "System.IO" %><%@

&amp;#106avascript实现datagrid客户端checkbox列的全选,反选

datagrid|客户端 最简格式:这是一个偷巧的方法,但不通用.前提是这个页面只有一个datagrid,且只有datagrid中有checkbox:这个就比较方便.主要思路就是搜索出整个页面的checkbox,将它们全部选中或反选. // 全选 function allCheck() { for (var i=0;i<Form1.elements.length;i++) { var e=Form1.elements[i]; if (e.type=='checkbox') e.checked=t

使用DataGrid显示来自于数据库的图象

datagrid|数据|数据库|显示 前言 我们如何创建一个DataGrid列,显示从数据库中获得的图像? 这是一个经常被问及的关于DataGrid控件的问题,而且其他可以很容易地通过结合你已经知道的关于模板列的内容以及一点点关于HTTP处理句柄(HTTP Handler)的知识来回答. 下面使用NorthWind数据库的Employees表来在一个DataGrid中显示数据库中的图像. 代码 --- BindImg.aspx <%@ Page language="c#" Cod