gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁

gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁

效果圖:

功能簡介:可使用上下鍵選中行,選中後點擊修改,textbox獲得gridview中的代碼的數據。對你有幫助的話,請記得要點擊“好文要頂”哦!!!不懂的,請留言。廢話不多說了,貼碼如下:

View Code
<head runat="server">
    <title>GridView分頁</title>
    <script type="text/javascript">
        var currentRowId = 0;
        var styleName = "";
        function SelectRow(ev, strGvName) {
            var e = window.event || ev;
            var keyCode = -1;
            if (e.which == null)
                keyCode = e.keyCode;    // IE   
            else
                if (e.which > 0)
                keyCode = e.which;    // All others   
            if (keyCode == 40)
                MarkRow(currentRowId + 1, strGvName);
            if (keyCode == 38) {
                MarkRow(currentRowId - 1, strGvName);
            }

            document.getElementById("NUM").value = currentRowId;
        }
        function MarkRow(rowId, strGvName) {
            var Grid = document.getElementById(strGvName);
            var rowCount = Grid.rows.length;
            if (document.getElementById(strGvName + rowId) == null)
                return;
            if (rowId == rowCount) {
                return;
            }
            if (document.getElementById(strGvName + currentRowId) != null)
                document.getElementById(strGvName + currentRowId).style.backgroundColor = styleName;
            currentRowId = rowId;
            styleName = document.getElementById(strGvName + rowId).style.backgroundColor;
            document.getElementById(strGvName + rowId).style.backgroundColor = 'red';
            var obj = document.getElementById(strGvName);
            obj.rows[rowId].cells[0].focus();
            document.getElementById("NUM").value = currentRowId;

        }
    </script>

    <style type="text/css">
        .hidden
        {
            display: none;
        }
    </style>
</head>
View Code
<form id="form1" runat="server">
    <div>
        <br />
       <asp:Button ID="btnUpd" runat="server" TabIndex="3" Text="修改" Width="59px" Font-Size="14px" OnClick="btnUpd_Click" />
        <asp:TextBox ID="NUM" runat="server" CssClass="hidden"></asp:TextBox>
        <asp:TextBox ID="tbValue" runat="server"></asp:TextBox>
        <asp:GridView ID="gvData" runat="server" AutoGenerateColumns="false" Width="100%"
            AllowPaging="true" PageIndex="0" PageSize="15" OnPageIndexChanging="gvData_PageIndexChanging"
            OnRowCreated="gvData_RowCreated" OnRowDataBound="gvData_RowDataBound">
            <PagerSettings FirstPageText="首頁" NextPageText="下一頁" PreviousPageText="上一頁" LastPageText="末頁"
                Mode="NumericFirstLast" />
            <Columns>
                <asp:CommandField ShowSelectButton="True" Visible="False" />
                <asp:BoundField DataField="STOCK_NO" HeaderText="代號" />
                <asp:BoundField DataField="STOCK_NAME" HeaderText="字段二" />
                <asp:BoundField DataField="FACT_NO" HeaderText="字段三" />
                <asp:BoundField DataField="ADDRESS" HeaderText="字段四" />
                <asp:BoundField DataField="MEMO_DESC" HeaderText="字段五" />
                <asp:BoundField DataField="CARRYDOWN_YM" HeaderText="字段六" />
                <asp:BoundField DataField="CLOSEDOWN_YM" HeaderText="字段七" />
                <asp:BoundField DataField="CUST_FLAG" HeaderText="字段八" />
            </Columns>
            <PagerStyle HorizontalAlign="Left" />
            <AlternatingRowStyle BackColor="LightBlue" Wrap="true" />
        </asp:GridView>
    </div>
    </form>
複製代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;//請添加以下命名空間
using System.Data;
using System.Drawing;

public partial class _Default : System.Web.UI.Page
{
    SqlConnection con = new SqlConnection("Server=SERVER\\xxx;Database=xxxx;User ID=xx;Pwd=xx;");
    private int _i = 0;//定義變量 ,查詢 Grid設定樣式有用到
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            getBind();
        }
    }
    protected void getBind()
    {
        string str = "select * from im01";
        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(str, con);
        da.Fill(ds);
        DataTable dt = ds.Tables[0];
        gvData.DataSource = dt;
        gvData.DataBind();
    }
    protected void gvData_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {

    }
    protected void gvData_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Pager)
        {
            Label label_Index = new Label();
            LinkButton Button_IndexFirst = new LinkButton();
            LinkButton Button_IndexLast = new LinkButton();
            LinkButton Button_IndexNext = new LinkButton();
            LinkButton Button_IndexPrevious = new LinkButton();

            Button_IndexFirst.Text = "第一頁 ";
            Button_IndexFirst.CommandName = "first";
            Button_IndexFirst.ForeColor = Color.Blue;
            Button_IndexFirst.Click += new EventHandler(PageButtonClick);

            Button_IndexNext.Text = "   下一頁 ";
            Button_IndexNext.CommandName = "next";
            Button_IndexNext.ForeColor = Color.Blue;

            Button_IndexNext.Click += new EventHandler(PageButtonClick);

            Button_IndexPrevious.Text = "前一頁 ";
            Button_IndexPrevious.CommandName = "previous";
            Button_IndexPrevious.ForeColor = Color.Blue;
            Button_IndexPrevious.Click += new EventHandler(PageButtonClick);

            Button_IndexLast.Text = "最末頁 ";
            Button_IndexLast.CommandName = "last";
            Button_IndexLast.ForeColor = Color.Blue;
            Button_IndexLast.Click += new EventHandler(PageButtonClick);

            e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(0, (Button_IndexFirst));
            e.Row.Controls[0].Controls[0].Controls[0].Controls[0].Controls.AddAt(1, (Button_IndexPrevious));

            int controlTmp = e.Row.Controls[0].Controls[0].Controls[0].Controls.Count - 1;
            e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexNext);
            e.Row.Controls[0].Controls[0].Controls[0].Controls[controlTmp].Controls.Add(Button_IndexLast);
        }
    }
    protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //設置懸浮鼠標指針形狀爲"小手"   
            e.Row.Attributes["style"] = "Cursor:hand";
        }
        string strGvName = "gvData";
        e.Row.Attributes.Add("id", strGvName + _i.ToString());
        e.Row.Attributes.Add("onKeyDown", "SelectRow(event,'" + strGvName + "');");
        e.Row.Attributes.Add("onClick", "MarkRow(" + _i.ToString() + ",'" + strGvName + "');");
        e.Row.Attributes.Add("tabindex", "0");
        _i++;
    }
    protected void PageButtonClick(object sender, EventArgs e)
    {
        LinkButton clickedButton = ((LinkButton)sender);
        if (clickedButton.CommandName == "first")
        {
            gvData.PageIndex = 0;
        }
        else if (clickedButton.CommandName == "next")
        {
            if (gvData.PageIndex < gvData.PageCount - 1)
            {
                gvData.PageIndex += 1;
            }
        }
        else if (clickedButton.CommandName == "previous")
        {
            if (gvData.PageIndex >= 1)
            {
                gvData.PageIndex -= 1;
            }
        }
        else if (clickedButton.CommandName == "last")
        {
            gvData.PageIndex = gvData.PageCount - 1;
        }
        getBind();
    } 
    //修改
    protected void btnUpd_Click(object sender, EventArgs e)
    {
        int intNum = 0;
        if (this.NUM.Text == "" || this.NUM.Text == "0")
        {
            Response.Write("<script type=\"text/javascript\">alert('請先查詢並選擇一筆資料!')</script>");
            return;
        }
        else
        {
            intNum = Convert.ToInt16(this.NUM.Text) - 1;
            tbValue.Text = this.gvData.Rows[intNum].Cells[1].Text.ToString();
        }
    }
}
複製代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章