华域联盟 .Net asp.net的GridView控件使用方法大全

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>&nbsp; 

<asp:LinkButton ID="lblFirstButton" runat="server" OnClick="lblFirstButton_Click" >|&lt;</asp:LinkButton>&nbsp; 

<asp:LinkButton ID="lblPreButton" runat="server" OnClick="lblPreButton_Click" >&lt;</asp:LinkButton>&nbsp; 

<asp:LinkButton ID="lblNextButton" runat="server" OnClick="lblNextButton_Click" >&gt;</asp:LinkButton>&nbsp;

<asp:LinkButton ID="lblLastButton" runat="server" OnClick="lblLastButton_Click" >&gt;|</asp:LinkButton>&nbsp; 

<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控件的一些基础使用大全,希望对大家有所用处。

您可能感兴趣的文章:

  • ASP.NET 2.0/3.5中直接操作Gridview控件插入新记录
  • asp.net GridView控件鼠标移动某行改变背景颜色(方法一)
  • asp.net GridView控件中模板列CheckBox全选、反选、取消
  • asp.net GridView控件中实现全选的解决方案
  • ASP.NET2.0中用Gridview控件操作数据的代码
  • ASP.NET GridView控件在列上格式化时间及DataFormatString使用
  • asp.net中GridView控件遍历的小例子
  • Asp.net的GridView控件实现单元格可编辑方便用户使用
  • ASP.NET4 GridView的四种排序样式详解
  • ASP.NET使用GridView导出Excel实现方法
  • asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页
  • ASP.NET中为GridView添加删除提示框的方法
  • asp.net中GridView数据鼠标移入显示提示信息
  • 如何用jQuery实现ASP.NET GridView折叠伸展效果
  • ASP.NET GridView中加入RadioButton不能单选的解决方案
  • 灵活掌握asp.net中gridview控件的多种使用方法(上)
  • 灵活掌握asp.net中gridview控件的多种使用方法(下)

本文由 华域联盟 原创撰写:华域联盟 » asp.net的GridView控件使用方法大全

转载请保留出处和原文链接:https://www.cnhackhy.com/49850.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部