`

DataGrid的几个小技巧

阅读更多

作者:网际浪子专栏(曾用名littlehb)  http://blog.csdn.net/littlehb/

方法一:使用模版列

我们在绑定好数据的DataGrid增加一个模版列,在列中放置一个按钮
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="btnDelete" runat="server" Text="删除"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
然后我们在DataGrid的ItemDataBound中添加以下代码
switch(e.Item.ItemType)
{
case(ListItemType.Item):
case(ListItemType.AlternatingItem):
{
Button btn=(Button)e.Item.FindControl("btnDelete");
btn.Attributes.Add("OnClick","return window.confirm('fs')");
break;
}
}
DataGrid在绑定数据的时候将触发此事件,而且每行触发一次.我们可以通过e.Item获得行,而通过e.Item.ItemType获得行类型.

方法二:使用按钮列

我们在绑定好数据的DataGrid增加一个删除按钮列
<asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
然后我们在DataGrid的ItemDataBound中添加以下代码
switch(e.Item.ItemType)
{
case(ListItemType.Item):
case(ListItemType.AlternatingItem):
{
LinkButton btn=(LinkButton)e.Item.Cells[4].Controls[0];
btn.Attributes.Add("OnClick","return window.confirm('fs')");
break;
}
}
可以看到我们这里获得控件引用的方法有所不同,使用了e.Item.Cells[4].Controls[0],而没有使用e.Item.FindControl("btnDelete"),因为我


们现在使用的是按钮列,不能对按钮列的按钮设置ID属性,而FindControl是通过ID来查找控件(当然我们也可以把前面的代码用


e.Item.Cells[4].Controls[0]的代码来替换.).

 

添加序号列

绑定好一个DataGrid
switch(e.Item.ItemType)
{
case(ListItemType.Item):
case(ListItemType.AlternatingItem):
{
DataGridItem row=(DataGridItem)e.Item;
TableCell cell=new TableCell();
cell.Controls.Add(new LiteralControl((e.Item.ItemIndex+1).ToString()));
row.Cells.AddAt(0,cell);
break;
}
case(ListItemType.Header):
{
DataGridItem row=(DataGridItem)e.Item;
TableCell cell=new TableCell();
cell.Controls.Add(new LiteralControl("序号"));
row.Cells.AddAt(0,cell);
break;
}
}
这里我们用到了e.Item.ItemIndex,获取来自 DataGrid 控件的 Items 集合的 DataGridItem 对象的索引.


产生两行的标题行

绑定好一个DataGrid,设置允许分页,设置页导航为上下型,一会我们将强制把上面的页导航更换成标题行.这里我想讲一下DataGrid的行构成
最上面Pager,用来放置分页导航,然后是表头Header,接着是Item和AlternatingItem项目和交替项目(当然还有SelectedItem选中项和EditItem


编辑项等),然后是Footer表脚,最下面还有一个Pager.因为Pager行是系统自动产生的,所以在ItemDataBound事件中不能捕获此行,这里我使用了


ItemCreated事件,添加代码如下
switch(e.Item.ItemType)
{
case(ListItemType.Pager):
{
if(first)
{
DataGridItem row=(DataGridItem)e.Item;
row.Cells.Clear();
TableCell cell0=new TableCell();
cell0.Controls.Add(new LiteralControl("ID"));
TableCell cell1=new TableCell();
cell1.ColumnSpan=2;
cell1.Controls.Add(new LiteralControl("FullName"));
row.Cells.Add(cell0);
row.Cells.Add(cell1);
}
first=!first;
break;
}
}
这里的First用来判断是上面的Pager还是下面的Pager.

分享到:
评论

相关推荐

    wince下DataGrid中添加控件

    DataGrid是.NET Compact Framework(用于WinCE平台的.NET框架)中的一个控件,用于显示和编辑表格数据。它允许用户以网格形式查看和操作数据,但默认情况下,每行只能显示文本信息。 添加CheckBox控件到DataGrid: ...

    winform datagrid显示图片

    在Windows Forms的DataGridView控件中显示图片,通常涉及到以下几个关键知识点: 1. **自定义列类型**: DataGridView默认不支持直接显示图片,因此我们需要创建一个自定义的DataGridViewColumn类型,继承自...

    收集的一些学习ASP.NET实用的文档

    这个压缩包中收集的学习资料主要涵盖了几个关键的知识点,包括存储过程、Excel导入导出、批量录入以及DataGrid使用技巧。接下来,我们将深入探讨这些主题。 1. 存储过程: 存储过程是预编译的SQL语句集合,存储在...

    asp.net学习大全(超全面的资料整合)

    DataGrid导出EXCEL的几个方法(WebControl).txt DataGrid的打印预览和打印.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种数据库连接大全.doc ...

    DataGridView-Pager分页

    在.NET框架中,DataGridView是一种常用的...在"DataGridView-Pager分页"这个主题中,重点是理解和掌握如何在没有内置分页功能的情况下,利用.NET Framework的组件和编程技巧实现数据分页,提升应用的性能和用户体验。

    ASP.NET学习大全

    DataGrid导出EXCEL的几个方法(WebControl).txt DataGrid的打印预览和打印.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种数据库连接大全.doc ...

    flex题目大全

    addEventListener里面有几个参数,分别是什么意思? - **答案**:`addEventListener`方法接受两个主要参数: - `eventType`: 事件类型字符串。 - `listener`: 事件处理函数。 #### 19. 用AS3如何自定义一个事件...

    C#.NET学习好资料-编程常用功能及代码的总结与收藏

    以下是对标题和描述中提及的几个关键知识点的详细说明: 1. 打开新的窗口并传送参数: 在C#.NET中,可以使用`System.Diagnostics.Process.Start()`方法来启动一个新的浏览器窗口,并通过URL参数传递数据。例如,`...

    delphi 开发经验技巧宝典源码

    0189 根据指定日期返回星期几 123 0190 将日期转换为字符串 124 0191 判断日期是否改变 124 0192 判断字符串是否为日期或时间 125 0193 获得指定月的最后一天 127 0194 在指定的日期上加上3月 127 0195...

    C#305-DataGridWithImages 源代码

    在.NET框架中,C#是一种常用的编程语言,用于开发各种类型的应用程序,包括Windows桌面应用。...通过深入分析和实践这个项目,开发者可以掌握更多关于C#界面设计和数据绑定的技巧,为自己的软件开发技能添砖加瓦。

    delphi 开发经验技巧宝典源码06

    0189 根据指定日期返回星期几 123 0190 将日期转换为字符串 124 0191 判断日期是否改变 124 0192 判断字符串是否为日期或时间 125 0193 获得指定月的最后一天 127 0194 在指定的日期上加上3月 127 0195...

    DataGridView控件使用详解

    DataGridView 还包括几个您可能不会立即注意到的默认行为: * 允许就地编辑。用户可以在单元格中双击或按 F2 来修改当前值。唯一的例外是将 DataColumn.ReadOnly 设置为 True 的字段(如当前示例中的 OrderID 字段...

    easyui的例子

    在“easyui”的例子中,我们可以探讨以下几个关键知识点: 1. **jQuery 基础**:EasyUI 建立在 jQuery 库之上,因此对 jQuery 的基本用法和选择器的理解至关重要。jQuery 提供了简洁的 API 来操作 DOM、处理事件、...

    十分好的.net编程资料

    压缩包内的文件名称揭示了多个主题,包括数据库查询优化、数据网格(datagrid)的应用、JavaScript脚本技术、分页算法、模态窗体的实现、HTML编写技巧以及SQL语句等。接下来,我将详细展开这些知识点。 1. **数据库...

    toad for oracle 教程 红宝书

    - **与DataGrid(数据表格)相关的小技巧**:通过调整DataGrid的显示选项,可以使查询结果更加直观易读。例如,使用排序功能快速查找特定数据。 通过上述详细的介绍,我们可以看出Toad for Oracle不仅是一款强大的...

    vb.rar_vb 系统

    在学习或使用这个系统时,我们可以关注以下几个知识点: 1. VB6.0基础:理解VB6.0的编程环境,熟悉控件的使用,掌握变量、常量、数组、过程、函数等基本元素。 2. GUI设计:学习如何通过VB6.0的设计器创建和布局...

    利用vb设计打印复杂报表

    设计复杂报表时,你需要考虑以下几个关键步骤: 1. 数据源:报表的数据通常来源于数据库,如SQL Server、Access等。使用ADO.NET(ActiveX Data Objects .NET)可以方便地连接和查询数据库,将数据加载到VB应用程序...

    窗体版VB产品展示程序(源代码)

    使用文件引用的方式有以下几个优点: 1. **空间效率**:避免了数据库文件过大,减小了存储需求。 2. **操作灵活**:可以使用任何支持的图片格式,并且图片编辑、替换等操作更加直观。 3. **性能优化**:访问文件系统...

Global site tag (gtag.js) - Google Analytics