1.绑定键值及读取

前端设置:DataKeyNames=“Field1,Field2”;

后台设置:GridView1.DataKeyNames=Gridview1.DataKeyNames = new string[] { "PositionID", "DepartmentID" };

后台读取:string key=this.GridView1.DataKeys[i][0].ToString();

2.可编辑列

<asp:TemplateField HeaderText="Field1" ControlStyle-Width="100px" />
    <ItemTemplate>
        <asp:TextBox ID="Field1" runat="server" Text='<%# Bind("Field1") %>'></asp:TextBox>
    </ItemTemplate>
</asp:TemplateField>

3.斑马线及鼠标停留变色

前端:onrowdatabound="GridView1_RowDataBound"

后台:

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        for (int i = 0; i < GridView1.Rows.Count; i++) //执行循环,保证每条数据都可以更新
        {
            if (e.Row.RowType == DataControlRowType.DataRow)  //首先判断是否是数据行
            {
                //当鼠标停留时更改背景色
                e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#999'");
                //当鼠标移开时还原背景色
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
            }
            if (i % 2 == 0)
                this.GridView1.Rows[i].BackColor = System.Drawing.Color.Honeydew;
        }
    }

4.导出EXCEL

protected void btnExport_Click(object sender, EventArgs e)    

{        

    Response.ContentEncoding = System.Text.Encoding.UTF8;//编码不能错,错了就会乱码,EXCEL解释不了格式就把HTML文本全部显示        

    Response.AppendHeader("Content-Disposition", "attachment;filename=SampleIssue.xls");        

    Response.ContentType = "application/ms-excel";        

    this.EnableViewState = false;        

    StringWriter sw= new StringWriter();        

    HtmlTextWriter htw = new HtmlTextWriter(sw);        

    GridView1.RenderControl(htw);        

    Response.Write(sw.ToString());        

    Response.End();    

}

 

/// <summary>    

/// 导出EXCEL,要写一个空的VerifyRenderingInServerForm方法    

/// </summary>    

/// <param name="control"></param>    

public override void VerifyRenderingInServerForm(Control control)    

{        

// Confirms that an HtmlForm control is rendered for    

}

如出现错误提示“RegisterForEventValidation can only be called during Render();”,则在<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>里面加入 EnableEventValidation="false"即可。

posted on 2018-11-19 19:33  Hawk_Yuan  阅读(164)  评论(0编辑  收藏  举报