ASP.NET中Datagrid常错误(3)
点击次数:16 次 发布日期:2008-11-26 13:50:19 作者:源代码网
|
源代码网推荐 If Not ViewState("EditItemIndex") Is Nothing Then 源代码网推荐 Datagrid1.EditItemIndex = ViewState("EditItemIndex") 源代码网推荐 End If 源代码网推荐 If Not ViewState("CurrentPageIndex") Is Nothing Then 源代码网推荐 Datagrid1.CurrentPageIndex = ViewState("CurrentPageIndex") 源代码网推荐 End If 源代码网推荐 BindGrid() 源代码网推荐 End Sub 源代码网推荐 源代码网推荐 Sub BindGrid() 源代码网推荐 Dim DV As DataView 源代码网推荐 DV = GetDataSource() 源代码网推荐 DV.Sort = ViewState("SortExpression") 源代码网推荐 Datagrid1.DataSource = DV 源代码网推荐 Datagrid1.DataBind() 源代码网推荐 End Sub 源代码网推荐 源代码网推荐 Sub Datagrid1_SortCommand(s As Object, e As DataGridSortCommandEventArgs) 源代码网推荐 ViewState("SortExpression") = e.SortExpression 源代码网推荐 BindGrid() 源代码网推荐 End Sub 源代码网推荐 源代码网推荐 Sub Datagrid1_EditCommand(s As Object, e As DatagridCommandEventArgs) 源代码网推荐 Datagrid1.EditItemIndex = e.Item.ItemIndex 源代码网推荐 ViewState("EditItemIndex") = e.Item.ItemIndex 源代码网推荐 BindGrid() 源代码网推荐 End Sub 源代码网推荐 源代码网推荐 Sub Datagrid1_PageIndexChanged(s as Object, e As DataGridPageChangedEventArgs) 源代码网推荐 Datagrid1.CurrentPageIndex = e.NewPageIndex 源代码网推荐 ViewState("CurrentPageIndex") = e.NewPageIndex 源代码网推荐 BindGrid() 源代码网推荐 End Sub 源代码网推荐 源代码网推荐 使用 ItemDataBound 或 ItemCreated 事件时,忘记检查适当的 ListItemType 源代码网推荐 源代码网推荐 Datagrid 控件对每个数据行引发两个事件。首次将每行添加到 Datagrid 时将引发 ItemCreated 事件,将数据绑定到每行时将引发 ItemDataBound 事件。添加单元格到 Datagrid 的表格输出时,这些事件可以用于控制每个单元格的外观或内容。例如,可以基于数值的范围修改单元格的背景颜色。但关键是要记住,这些事件的引发针对的是所有 Datagrid 项目类型,包括页眉、页脚和分页程序项目。如果执行 ItemDataBound 事件期间,没有在引用项目的数据之前仔细检查项目类型,第一个项目(通常是标题行)就将发生错误。如果 Datagrid 启用了分页,且将其设置为在顶端显示,那么第一个项目就会成为分页程序项目。以下示例代码显示如何在引用项目数据之前进行正确的 ListItemType 检查。不要忘了 AlternatingItem! 源代码网推荐 源代码网推荐 Sub DataGrid1_ItemDataBound(source As Object,e As DataGridItemEventArgs) 源代码网推荐 If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then 源代码网推荐 If e.Item.DataItem("ForumDate") < DateTime.Today Then 源代码网推荐 e.Item.Cells(1).BackColor =System.Drawing.Color.FromName("#ffccff") 源代码网推荐 End If 源代码网推荐 End If 源代码网推荐 End Sub 源代码网推荐 源代码网推荐 源代码网推荐 需要对生成的 HTML 有更多的控制时,过多地使用了 Datagrid(Repeater 也许是更好的选择) 源代码网推荐 源代码网推荐 如果懒散的程序员喜欢 Datagrid 控件(因为 Datagrid 控件为他们完成了很多工作),那么有着极强控制欲的程序员必定喜欢 Repeater 控件。如果需要或希望完全控制创建的所有 HTML,请使用 Repeater 控件,它能帮助您完成该任务。Repeater 控件在性能上也略占优势,因为它不像 Datagrid 控件的所有内置功能那样占用系统资源。也可以考虑使用折衷的 DataList 控件,它具备编辑和排序功能,同时还具有在一行内重复显示记录的功能。 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
