asp.net的GridView控件使用方法大全

前台.aspx


代码如下:

<asp:Label ID="tplb" runat="server" Text="总页数:"></asp:Label>
<asp:Label ID="lblPageCount" runat="server" Text=""></asp:Label>
<asp:Label ID="curLabel" runat="server" Text="当前页:"></asp:Label>
<asp:Label ID="lblPage" Text="1" runat="server"></asp:Label>  
<asp:LinkButton ID="lblFirstButton" runat="server" OnClick="lblFirstButton_Click" >|<</asp:LinkButton>  
<asp:LinkButton ID="lblPreButton" runat="server" OnClick="lblPreButton_Click" ><</asp:LinkButton>  
<asp:LinkButton ID="lblNextButton" runat="server" OnClick="lblNextButton_Click" >></asp:LinkButton> 
<asp:LinkButton ID="lblLastButton" runat="server" OnClick="lblLastButton_Click" >>|</asp:LinkButton>  
<asp:DropDownList ID="ddlPage" runat="server" Width="40px" AutoPostBack="True" 
      OnSelectedIndexChanged="ddlPage_SelectedIndexChanged"> 
      <asp:ListItem>10</asp:ListItem> 
        <asp:ListItem>15</asp:ListItem> 
      <asp:ListItem>20</asp:ListItem> 
      <asp:ListItem>30</asp:ListItem> 
</asp:DropDownList> 
<asp:Label ID="PageSizeLabel" runat="server" Text="条/页"></asp:Label>

后台  


代码如下:

#region分页
protected void BindFollowExamInfoGridView(int PersonID)
  {
    int currentpage = Convert.ToInt32(lblPage.Text);
    DataTable dt = new DataTable();
    dt = feibf.GetByPersonIDFollowExamInfo(PersonID);  //查询指定人的随访信息记录
    if (dt.Rows.Count > 0)
    {
      FollowExamInfoGridView.DataSource = dt;
      FollowExamInfoGridView.DataBind();
      PagedDataSource ps = new PagedDataSource();
      ps.DataSource = dt.DefaultView;
      ps.AllowPaging = true;
      ps.PageSize = Convert.ToInt32(ddlPage.SelectedValue);
      lblPageCount.Text = ps.PageCount.ToString();
      this.lblPreButton.Enabled = true;
      this.lblNextButton.Enabled = true;
      ps.CurrentPageIndex = currentpage - 1;
      if (currentpage == 1)
      {
        this.lblPreButton.Enabled = false;
        this.lblFirstButton.Enabled = false;
      }
      else
      {
        this.lblPreButton.Enabled = true;
        this.lblFirstButton.Enabled = true;
      }
      if (currentpage == ps.PageCount)
      {
        this.lblNextButton.Enabled = false;
        this.lblLastButton.Enabled = false;
      }
      else
      {
        this.lblNextButton.Enabled = true;
        this.lblLastButton.Enabled = true;
      }
      FollowExamInfoGridView.DataSource = ps;
      FollowExamInfoGridView.DataBind();
    }
    
  }
  protected void lblPreButton_Click(object sender, EventArgs e)
  {
    this.lblPage.Text = Convert.ToString(Convert.ToUInt32(lblPage.Text) - 1);
    BindFollowExamInfoGridView(Convert.ToInt32(Request.QueryString["PersonID"]));
  }
  protected void lblNextButton_Click(object sender, EventArgs e)
  {
    this.lblPage.Text = Convert.ToString(Convert.ToUInt32(lblPage.Text) + 1);
    BindFollowExamInfoGridView(Convert.ToInt32(Request.QueryString["PersonID"]));
  }
  protected void lblFirstButton_Click(object sender, EventArgs e)
  {
    this.lblPage.Text = "1";
    BindFollowExamInfoGridView(Convert.ToInt32(Request.QueryString["PersonID"]));
  }
  protected void lblLastButton_Click(object sender, EventArgs e)
  {
    this.lblPage.Text = lblPageCount.Text;
    BindFollowExamInfoGridView(Convert.ToInt32(Request.QueryString["PersonID"]));
  }
  protected void ddlPage_SelectedIndexChanged(object sender, EventArgs e)
  {
    lblPage.Text = "1";
    BindFollowExamInfoGridView(Convert.ToInt32(Request.QueryString["PersonID"]));
  }
#endregion

排序
Allowsort = "true"
sortExpression = "ID"
DataView dv = SortBindGrid(dt);
#region排序
  protected void FollowExamInfoGridView_Sorting(object sender, GridViewSortEventArgs e)
  {
    ViewState["sortexpression"] = e.SortExpression;
    if (ViewState["sortdirection"] == null)
    {
      ViewState["sortdirection"] = "asc";
    }
    else
    {
      if (ViewState["sortdirection"].ToString() == "asc")
      {
        ViewState["sortdirection"] = "desc";
      }
      else
      {
        ViewState["sortdirection"] = "asc";
      }
    }
   
    BindFollowExamInfoGridView(Convert.ToInt32(HiddenPersonID.Value));
  }
  public DataView SortBindGrid(DataTable table)
  {
    if (table != null)
    {
      DataView dv = table.DefaultView;
      if (ViewState["sortexpression"] != null && ViewState["sortdirection"] != null)
      {
        dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString();
      }
      return dv;
    }
    else
    {
      return null;
    }
  }
  #endregion

=======自带分页
  #region自带分页

protected void FollowExamInfoGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
    FollowExamInfoGridView.PageIndex = e.NewPageIndex;
    BindFollowExamInfoGridView(Convert.ToInt32(HiddenPersonID.Value));
  }
#endregion

  选中Grid View 的实现


代码如下:

  #region实现选中行
   <SelectedRowStyle BackColor="AliceBlue" ForeColor="Gray" />
   <asp:CommandField ShowSelectButton="True"/>
if (e.Row.RowType == DataControlRowType.DataRow)
  {
      e.Row.Attributes.Add("onclick", "this.cells[0].childNodes[0].click()");
}
protected void GridViewRegiment_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = GridViewRegiment.SelectedRow;
    int RegimentID = Convert.ToInt32(row.Cells[1].Text);
    Response.Redirect("UpdateRegimentation.aspx?RegimentID=" + RegimentID);
}
#endregion

显示颜色和删除


代码如下:

  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    //int i;
    //for (i = 0; i < GridViewRegiment.Rows.Count; i++)
    //{
      if (e.Row.RowType == DataControlRowType.DataRow)
      {
        //当有编辑列时,避免出错,要加的RowState判断
        if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
        {
          ((ImageButton)e.Row.Cells[2].FindControl("IBtndelete")).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:"" + e.Row.Cells[0].Text + ""吗?')");
        }
        e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#00A9FF'");
        e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#E6F5FA'");
      }
    //}
}

GridView空的处理
  1 显示无表头的空纪录,EmptyDataText="没有记录"
  2 显示表头的空纪录


代码如下:

DataTable dt = new DataTable();
  dt = feibf.GetByPersonIDFollowExamInfo(PersonID);  //查询指定人的随访信息记录
    DataView dv = SortBindGrid(dt);
    if (dt.Rows.Count > 0)
    {
      FollowExamInfoGridView.DataSource = dv;
      FollowExamInfoGridView.DataBind();
    }
    else
    {
      //添加新行显示表头
      dt.Rows.Add(dt.NewRow());
      FollowExamInfoGridView.DataSource = dt;
      FollowExamInfoGridView.DataBind();
      //处理新行
      int columnCount = FollowExamInfoGridView.Rows[0].Cells.Count;
      //清除掉该空行的全部单元格
      FollowExamInfoGridView.Rows[0].Cells.Clear();
      //新建单元格对象
      FollowExamInfoGridView.Rows[0].Cells.Add(new TableCell());
      //合并单元格
      FollowExamInfoGridView.Rows[0].Cells[0].ColumnSpan = columnCount;
      //设置单元格提示内容
      FollowExamInfoGridView.Rows[0].Cells[0].Style.Value = "text-align:center";
      FollowExamInfoGridView.Rows[0].Cells[0].Text = "此人无随访信息";
    }

GridView 的导出
EnableEventValidation="false"


代码如下:

#region导出
 public override void VerifyRenderingInServerForm(Control control)
  {
  }
  protected void BtnPrint_Click(object sender, EventArgs e)
  {
    Response.Clear();
    Response.Buffer = true;
    Response.Charset = "GB2312";
    Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
    // 如果设置为GetEncoding("GB2312");导出的文件将会出现乱码!!!
    Response.ContentEncoding = System.Text.Encoding.UTF7;
    Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
    this.AfficheGV.RenderControl(oHtmlTextWriter);
    Response.Output.Write(oStringWriter.ToString());
    Response.Flush();
    Response.End();
  }
#endregion

  ToolTip GridView详细信息的显示
  前台
<script type="text/javascript" >
  function Tooltip(cella,cellb)
  {
    document.getElementById("dc").innerText = "详细信息:"+cellb;
    document.getElementById("id").innerText = "ID:"+cella;
    x= event.clientX+document.body.scrollLeft;
    y=event.clientY+document.body.scrollTop+20;
    toolTipLayer.style.display="inline";
    toolTipLayer.style.left=x;
    toolTipLayer.style.top=y;
  }
</script>
<div id="toolTipLayer" style=" position:absolute; display:none;
  background-color:Aqua; border-color:Blue; border-style:solid;
   border-color:Blue; border-width:1px; " >
  <table>
  <tr><td>Affiche</td></tr>
  <tr><td id ="dc"></td></tr>
  <tr><td id ="id"> </td></tr>
  </table>
</div>

后台


代码如下:

protected void AfficheGV_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
      {
1 e.Row.Attributes.Add("onmouseover", "Tooltip('" +e.Row.Cells[0].Text.ToString()+ "','"+e.Row.Cells[1].Text.ToString()+"')");
2 e.Row.Attributes.Add("onmouseover","javascript:Tooltip('e.Row.Cells[0].Text');");
3 e.Row.Attributes.Add("onmouseover", "Tooltip('e.Row.Cells[0].Text')");
      } }
}

#region自带编辑
  protected void GVAffiche_RowEditing(object sender, GridViewEditEventArgs e)
  {
    GVAffiche.EditIndex = e.NewEditIndex;
    BindGVAffiche();
  }
  protected void GVAffiche_RowDeleting(object sender, GridViewDeleteEventArgs e)
  {
    GVAffiche.EditIndex = -1;
    MyAffiche.DelAfficeBF( Convert.ToInt32(GVAffiche.DataKeys[e.RowIndex].Value.ToString()));
    BindGVAffiche();
  }
  protected void GVAffiche_RowUpdating(object sender, GridViewUpdateEventArgs e)
  {
    int id = Convert.ToInt32(((TextBox)(GVAffiche.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim());
    string dc = ((TextBox)(GVAffiche.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim();
    MyAffiche.UpdateAfficheBf(id,dc);
    GVAffiche.EditIndex = -1;
    BindGVAffiche();
  }
  protected void GVAffiche_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
  {
    GVAffiche.EditIndex = -1;
    BindGVAffiche();
  }
#endregion

#region样式的控制
  protected void GVAffiche_RowDataBound(object sender, GridViewRowEventArgs e)
  {
    //首先判断是否是数据行
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      //当有编辑列时,避免出错,要加的RowState判断
      if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
      {
        ((Button)e.Row.Cells[7].FindControl("btnDel")).Attributes.Add("onclick","javascript:return confirm('你确认删除:"" + e.Row.Cells[1].Text + ""')");
        //当鼠标停留时更改背景色
        e.Row.Attributes.Add("onmouseover", "color=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
        //当鼠标移开时还原背景色
        e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=color");
        GVAffiche.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");
        //GVAffiche.Attributes.Add("style", "word-break:break-all;word-wrap:break-word");
        if (e.Row.Cells[1].Text == "444")
        {
          e.Row.Cells[1].BackColor = System.Drawing.Color.Red;
        }
      }
    }
  }
  #endregion

以上是GridView控件的一些基础使用大全,希望对大家有所用处。

(0)

相关推荐

  • ASP.NET GridView中加入RadioButton不能单选的解决方案

    今天开发碰见一个问题,就是当GridView中加入一个包含RadioButton的模板列,结果一运行.....天啊,单选按钮可以多选了! 囧啊!为了演示一下我今天的错误我还是模拟一个功能场景吧,我要实现的功能是显示一个包含单选按钮的学生信息列表,选择一行后将详细信息显示出来~! 1.问题展现 ①首先准备一个GridView用来展示学生的基本信息与最重要的单选按钮,代码如下: <asp:GridView ID="GridView1" runat="server"

  • ASP.NET使用GridView导出Excel实现方法

    本文实例讲述了ASP.NET使用GridView导出Excel实现方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /// <summary>  /// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流  /// </summary>  /// <param name="dtData">要导出的数据源</param>  public static void DataTable1Excel(S

  • ASP.NET4 GridView的四种排序样式详解

    与ASP.NET 的其他Web控件一能够,Gridview控件拥有很多不同的CSS样式属性设置,包括象CssClass,Font字体,ForeColor,BackColor,BackColor, Width, Height等等.Gridview还包括了一些应用在表格的行上的样式属性,比如RowStyle, AlternatingRowStyle, HeaderStyle,和PagerStyle,它们都提供了象CssClass和Font这些基本的属性设置. 在 ASP.NET 4.0中的Gridv

  • ASP.NET GridView控件在列上格式化时间及DataFormatString使用

    症状:在GridView绑定日期格式的时候,数据库中的日期为2008-07-04,而GridView显示的是2007-07-04 000000.. 解决办法:想把这后面这多余的零去掉的话在绑定时间的那一列源码后面加上一句话就可以了,如下红色的部分 复制代码 代码如下: <asp:BoundField DataField="BeginDate" HeaderText="开始时间" DataFormatString="{0:d}" htmlen

  • 灵活掌握asp.net中gridview控件的多种使用方法(上)

    灵活使用asp.net中gridview控件的方法有很多种,本文内容很富,希望大家都能有所收获. 1.GridView无代码分页排序: 效果图: 小提示: 1.AllowSorting设为True,aspx代码中是AllowSorting="True": 2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12". 3.默认的是单向排序的,右击GridView弹出"属性",选择AllowSort

  • 如何用jQuery实现ASP.NET GridView折叠伸展效果

    今天做静态页面时有一个需求,就是页面上有一组两个选项的单选按钮和一个有6行的列表(该列表用Table标签实现,不是DIV),当选择单选按钮的选项一时,列表的前三条信息显示后三条信息隐藏,当选择单选按钮的选项二时,列表的前三条信息隐藏后三条信息显示.那么就牵扯出我们今天的话题拉,如何实现呢?实现后该实现还能应用到哪些场景? 1.第一反应的解决方案 碰到这个需求后,我第一反应就是很简单啊,分别用两个DIV将前三个Table中的TR标签与后三个TR标签包起来,然后通过JS控制DIV的显示. 第一步:使

  • 灵活掌握asp.net中gridview控件的多种使用方法(下)

    继续上篇文章的学习<灵活掌握asp.net中gridview控件的多种使用方法(上)>,在此基础上巩固gridview控件的操作使用,更上一层楼. 11.GridView实现用"..."代替超长字符串: 效果图: 解决方法:数据绑定后过滤每一行即可 for (int i = 0; i <= GridView1.Rows.Count - 1; i++) { DataRowView mydrv; string gIntro; if (GridView1.PageIndex

  • asp.net GridView控件鼠标移动某行改变背景颜色(方法一)

    复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using Syste

  • ASP.NET2.0中用Gridview控件操作数据的代码

    其中,在数据控件方面,增加了不少控件,其中的Gridview控件功能十分强大.在本文中,将探讨Gridview控件中的一些功能特性和用法,如果各位读者对Gridview控件不大了解,可以通过<使用ASP.NET 2.0中的Gridview控件>一文,来对Gridview控件有个初步的认识. 1.使用Gridview插入新记录 在Gridview控件中,可以实现插入新记录的操作(见<使用ASP.NET 2.0中的Gridview控件>)一文,但如果想实现在Gridview中,实现在G

  • asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页

    效果图: 功能简介:可使用上下键选中行,选中后点击修改,textbox获得gridview中的代码的数据.对你有帮助的话,请记得要点击"好文要顶"哦!!!不懂的,请留言.废话不多说了,贴码如下: <head runat="server"> <title>GridView分頁</title> <script type="text/javascript"> var currentRowId = 0; v

  • Asp.net的GridView控件实现单元格可编辑方便用户使用

    最近做一个功能,考虑到用户使用方便,减少弹出页面,采用点"编辑"按钮无需弹出页面直接当前行的单元格内容就能编辑.进入页面显示如下图:  点"编辑"按钮后显示如下图:  编号为1的"星期"和"是否上班"均可编辑,编辑完成后,点"更新"保存. 第一张图中的数据加载是通过下述方法实现: protectedvoid GridView_RowDataBound(object sender, GridViewRowEv

  • asp.net GridView控件中实现全选的解决方案

    第一种:利用客户端控件实现 JS: 复制代码 代码如下: <script type="text/javascript"> function checkAll() { var checklist=document.getElementsByTagName("input"); for(var i=0;i<checklist.length;i++) { if(checklist[i].type=="checkbox") { check

  • ASP.NET中为GridView添加删除提示框的方法

    本文实例讲述了ASP.NET中为GridView添加删除提示框的方法.分享给大家供大家参考.具体分析如下: 在GridView中我们可以直接添加一个CommandField删除列来删除某行信息.但为了避免误操作引起的误删除,在删除操作者让操作者再确认下,完后再进行删除. 首先我们给我们的GridView 添加一个模板列,如下: 以下是引用片段: <ASP:TemplateField HeaderText="Delete" ShowHeader="False"&

  • asp.net GridView控件中模板列CheckBox全选、反选、取消

    复制代码 代码如下: using System; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebC

  • ASP.NET 2.0/3.5中直接操作Gridview控件插入新记录

    一.简介 从ASP.NET 2.0起引入了一批新的功能强大的视图控件,例如Gridview.FormView和DetailsView等等.通过和数据源控件的简单结合,在许多情况下,仅需要简单的配置方式就可以开发出功能强大的应用程序.但遗憾的是,Gridview控件中并没有提供像在FormView和DetailsView控件中那样直接插入新记录操作的支持.图1给出了典型的使用控件展示数据库数据的情形. 图1 使用GridView控件展示VS2005示例数据库Address表格中的数据熟悉Gridv

  • asp.net中GridView控件遍历的小例子

    复制代码 代码如下: int intCount = this.GridView1.Rows.Count; //总行数for (int i = 0; i < intCount; i++){  Label1.Text = ((HyperLink)GridView1.Rows[i].Cells[0].Controls[0]).Text.ToString().Trim(); } for (i = 0; i < GridViewID.Rows.Count; i++){   CheckBox chkVot

  • asp.net中GridView数据鼠标移入显示提示信息

    问题提出: 在asp.net开发中,如果有这样的一个需求,如果在列表控件,如GridView中的某列中显示的是一个计算公式得出的值,那么需求来了,鼠标移入该数字,显示该数字的计算公式和过程,如何做? 解决方案分析: 常规可以使用控件的title属性来显示提示信息,但是显示信息的样式不美观.接下来我们可以使用这样的一个解决方案,其显示效果如下图所示: 详细实现步骤: 1.下载弹出提示框相关js文件包,下载地址:http://download.csdn.net/detail/taomanman/90

随机推荐