GridView, Repeater与DataList数据服务控件

 1:GridView控件基本属性
 2:让GridView有分页功能
 3:GridView数据控件的七种字段类型
 4:让GridView具有光棒效果
 5:为GridView添加自动编号
 6:把DataGrid的数据,导出到excel中
 7:隐藏GridView的某一列
 8:如何自定义分页栏

 

功能:数据显示控件
                         1)如何让GridView显示数据库的表
                            GridView1.DataSource=数据源
                            GridView1.DataBind();
                         2)EmptyDataText,EmptyDataRowStyle:没有任何数据时显示的文本,样式
                         3)GridLine:设置显示的网络线
                         4)ShowHead,ShowFooter:显示页头与页脚
                         5)AllowSorting:显示允许排序
                         6)AutoGenerateDeleteButton:是否自动产生删除按钮
                         7)AutoGenerateEditButton:是否自动产生编辑按钮
                         8)AutoGenerateSelButton:是否自动产生选择按钮
                         9)DataKeyNames:设置GridView主键的值
                        10)DataKeys:在设置了DataKeyNames之后,得到当前行主键的值
                               DataKeys[下标].value.tostring
                        11)Rows:得到gridview中行集合
                            A)GridView1.Rows[2].Cells[3].Text:得到第3行第4个单元格的值
                            B)Rows.Count:得到行的个数
                        12)AlternatingRowStyle:交替行的样式
                        13)FooterStyle:页脚样式
                        14)HeadStyle:头新式
                        15)AllowPaging:是否充许分页
                        16)PageSize:每一页的数据大小
                        17)PageIndex:当前行的下标
                        18)PageStyle:分页栏样式
                        19)RowStyle:数据行的样式
                        20):Width,Height:gridView的高和宽。一般要去掉,这样有利于排版

               让GridView有分页功能 (分页数据源不能是sqldataread)        
                             A)设置AllowPaging为true
                             B)设置PageSize大小
                             C)设置PageSetting的分页项
                               PageSettings:用来设置分页的项
                        1)Mode:设置分页导航条中分页的样式:
                       11)NextPrevious:上一页按钮和下一页按钮。
                      22)NextPreviousFirstLast:上一页按钮、下一页按钮、第一页按钮和最后一页按钮。
                      33)Numeric:可直接访问页面的带编号的链接按钮。
                      44)NumericFirstLast:带编号的链接按钮、第一个链接按钮和最后一个链接按钮
                      2)FirstPageText:第一页按钮的文字。
                      3)PreviousPageText:上一页按钮的文字。
                      4)NextPageText:下一页按钮的文字。
                      5)LastPageText:最后一页按钮的文字
                     6)PageButtonCount:当用户在mode里面选择Numeric时,所一页所显示的按钮个数
                      7)Position:用来设置分页文字的显示位置
                      8)PageImageUrl:用来设置一个图片来代替分页链接按钮
                       D)在PageIndexChanging里面写上代码
                                   this.GridView1.PageIndex = e.NewPageIndex;
                                   this.GridView1.DataSource =数据源
                                   this.GridView1.DataBind();//执行数据绑字代码
                       E)让用户实现转到功能:
                                   直接指定this.GridView1.PageIndex=转到的值
                                   然后进行数据的绑定 
                       F)打开EnableSortingAndPagingCallBacks属性:
                                  该属性可以实现AjAx。异步更新
GridView数据控件的七种字段类型
                      1)数据绑定字段:BoundField。[手动绑定]
                      1:AutoGenerateColumns:自动产生列,会自动根据数据源去创建列,但是有时候用户可能只需要其中的几列,这时应该取消该属性,并手动添加列
                      2:DataField:用于绑定的列名
                      3:HeadText:用于显示的新的列名
                      4:NullDisplayText:空字段所显示的文本
                      5:DataFormatString:字符串格式化功能 此时一定要把HtmlEncode设为false生效
{0:C}:显示货币类型;0:F}:显示固定小数点。{0:F2}显示两位小位;{0:D}:显示为长日期格式                   作用: A)修改字段标题   B)格式化字符串 

                      2)ButtonField:按钮字段 
                      在GridView控件中显示自定义的按钮
                      1:Text:显示在按钮上方的标题
                      2)Type:按钮的样式。
                      3)ImageUrl:按钮类型设置成图像时,所指定图像
                      4)CommandName:用来设置按钮的命令名,以后好区别是点击了那个按钮
                      5)单击按钮时,会触发RowCommand事件e.CommandArgument得到当前行的下标
                        e.CommandName:得到单击按钮的命令名
                       举例: 1)有订单表,要求在gridview中添加一个按钮名为修改,执行打印两个按钮
                                2)有一个商品表,放置一个按钮为放入购物蓝,和退回的按钮 购物车暂时用ListBox来代替                                       
如何向GridView中添加客户端的JS  
                      在一个RowDataBound事件里面写上代码:[是GridView绑定数据时,触发]
                                         if (e.Row.RowType == DataControlRowType.DataRow)
                                           {
                                             (e.Row.Cells[4].Controls[0] as LinkButton).Attributes.Add("onclick", "return confirm('确实要删除吗?');");
                                              其中e.Row代表每一个绑定的行
                                          }

                      3)CommandFile命令按钮字段
                           是显示预先定义好的按钮来进行select,edit,update,delete
                          命令按钮本身就可以执行一些命令,而ButtonField的代码完全由
                             用户自己写,所以CommandFile可以省很多代码
                                      1)有删除,选择,编辑三个已经做好的按钮
                                      2)如何删除数据                                  
                                         在RowDeleting事件里面写代码
                                         其中e.RowIndex得到删除的当前行的下标                                        
                                         如果要添加删除提示,请为GridView添加客户端脚本
                                         删除完毕之后,请重新绑定GridView到数据源
                                          if (this.GridView1.PageIndex != 0 && this.GridView1.Rows.Count == 1)
                                                 {
                                                    this.GridView1.PageIndex -= 1;
                                                 }
                                             与分页配合一起删除

3)如何编辑数据:[一般不用]
                              A:在RowEditing事件里面写上:[当用户单击了编辑按钮时]
                                                   this.GridView1.EditIndex = e.NewEditIndex;
                                                   GridDataBind();   //使GridView再次绑定
                              B:在RowCancelingEdit事件写上:[当用户单击了取消按钮时]
                                                   this.GridView1.EditIndex = -1;
                                                   GridDataBind();
                              C:在RowUpdating里面得到用户修改的新值
                            this.GridView1.Rows[e.RowIndex].Cells[下标].Controls[0] as TextBox
                                              进行数据库操作重新绑定

                                        4)如何选择数据:
                                           A:在SelectedIndexChanging里面写代码
                                             this.GridView1.Rows[e.NewSelectedIndex].Cells[1].Text
                                             得到用户所选中的行的字段的值
                                        举例:
                                           1:一个订单表。要求选择一个订单表的一条记录,
                                               同时显示中订单明细表的内容
                                     
4)CheckBoxField复选框字段
                                      当把数据类型设为Bit类型时,会自动成为复选框

5)HyperLinkField超级链接 (用得比较多)
                                    1:HeadText:列头文本
                                    2:DataNavigateUrlFields:用来生成Url查询字符串的字段名
                                    3)DataNavigateUrlFormatString:指定Url查询字符串
                                    4)DataTextFiled:用来显示超链接的字段,用来匹配DataTextFormatString
                                    4)DataTextFormatString:显示超链接的文本。比如:
                                              查看{0}的详细资料
                                    举例:
                                        1:一个订单表。要求选择一个订单表的一条记录,
                                               同时显示中订单明细表的内容

6)ImageField:图像字段   
                            1:HeadText:列头文本
                            2:DataImageUrlField:用于显示图片的字段
7)TemplateFile:模板字段 (很灵活)
                       当GridView所预定的几种字段都无法满足你的需求时,就可以使用 模板字段。模板字段充许你加入各种你所需要的控件
                      举例
                            1:在每一行的前面加上checkBox,以实现购物
                                     foreach (GridViewRow  gvr  in this.GridView1.Rows)
                                      {
                                        if ((gvr.Cells[0].FindControl("chk") as CheckBox).Checked)
                                       {
                                            s += gvr.Cells[1].Text;
                                       }          
                                     }
                                  2:把某一个字段,作为文本框类型并显示
                                    1)加一个模板列,在模板列中加入文本框
                                    2)在RowDataBound事件里面向该文本框赋值
                                        :
                                                                    
让GridView具有光棒效果
                                 if (e.Row.RowType == DataControlRowType.DataRow)
                                   {
                                      e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='red'");
                                      e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='yellow'");          
                                   }                                                                                                                 
 为GridView添加自动编号
                   1)添加一个绑定列
                   2)在RowDataBound事件里面写上
                   e.Row.Cells[0].Text = Convert.ToString(this.GridView1.PageIndex *this.GridView1.PageSize + e.Row.RowIndex+1);
                                            

隐藏GridView的某一列
                   在RowDataBound事件里面写上
                   this.GridView1.Columns[0].Visible = false;

                   如何自定义分页栏
                   1)单右-->编辑模板-->PageTemplate
                   2)拖拉一些LinkButton在里面。首页 上页  下页  末页   第几页/共几并区分它们的CommandName值
                   3)在RowCommand事件中处理这些按钮按下的事件e.CommandName == "a" 来判断按下了那个按钮
                   4)在RowDataBound事件里面来访问分页栏中的标签
                  if (e.Row.RowType == DataControlRowType.Pager)
                {
                  (e.Row.Cells[0].FindControl("lbld") as Label).Text = this.GridView1.PageIndex.ToString();            
                                                 }   

     
把DataGrid的数据,导出到excel中
              1:在页面的类中添加               
              public override void VerifyRenderingInServerForm(Control control)
                                                   {
         
                                                   }
              2:写上如下代码:
              Response.ContentType = "application/vnd.ms-excel";      
              System.IO.StringWriter tw = new System.IO.StringWriter();
              System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
              this.GridView2.RenderControl(hw);//设置你要导出内容的控件,我这里是Repeater 
              Response.Write(tw.ToString());
              Response.End();
以前使用GridView都是以表格的形式来显示的,有时候我们需要更自由的方式来展现数据。 


使用Repeater[一般很少用]
           Repeater为我们准备了很多的模板,但是这些模板只能够以进入源码视,手动来写
             1:Template:项目模板,
             2:SeparatorTemplate:分隔线模板
             3:AlternatingItemTemplate:交替项模板
             4:HeaderTemplate:头模板
             5:FooterTemplate:模板                                   
             通过<%#  DataBinder.Eval(Container.DataItem,"字段名")来得到绑定到Repeater的数据源字段的值                                
               举例:1:做一个在线购物选择商品模板 2:做一个在线考试的界面
                    

如何给Repeater分页                                    
            PagedDataSource pds = new PagedDataSource();
            pds.DataSource = DataOper.RunHasResult("select 工号,姓名,部门编号,图片 from 职工").DefaultView;
            pds.AllowPaging = true;
            pds.PageSize = 3;
            pds.CurrentPageIndex = CurrentPage;
            this.Repeater1.DataSource = pds;
            this.Repeater1.DataBind();
DataList控件
           DataList与Repeat控件的区别
           DataList也有Repeat的那几个模板,此外还多了一个SelectedItemTemplate模板
           DataList可以一行显示多笔数据,通过设置RepeatColumns=值
           DataList直接在设计状态时,就可以进行模板的编辑,不像Repeat要写代码
           实现选择DataList控件中的条目后显示该条目的详细信息
           1)增加ItemTemplate项目模板,并添加一个LinkButton,以些能进入SelectedItemTemplate模板
           2)设计SelectedItemTemplate模板
           3)在DataList的ItemCommand事件中,写上下列代码this.DataList1.SelectedIndex = e.Item.ItemIndex;
            重新绑定DataList
            举例:做一个在线购物选择商品模板,只显示图片和商品名,点击
                                       查看详细资料后,会得到该商品的详细资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值