自定義DataGrid分頁

message_index.aspx:

 

<form id="Form1" method="post" runat="server">

       <table cellSpacing="0" cellPadding="0" width="400" border="0">

          <tr>

                <td align="right" height="22"><span class="brown">登錄</span>&nbsp;&nbsp;<span class="brown">留言</span>&nbsp;&nbsp;</td>

              </tr>

</table>

<table cellSpacing="0" cellPadding="0" width="400" border="0">

          <tr class="ziti">

                     <td class="brown" align="center">

<asp:DataGrid id="myDataGrid" runat="server" AutoGenerateColumns="False" CssClass="ziti" Width="100%" BorderWidth="1px" GridLines="Horizontal" BorderColor="Silver" PageSize="5" OnPageIndexChanged="myDataGrid_Page"        PagerStyle-Mode="NumericPages" AllowPaging="True" PagerStyle-HorizontalAlign="Right"><HeaderStyle HorizontalAlign="Center" ForeColor="#9F3636" BackColor="#F7EEEF"></HeaderStyle>

                     <Columns>

<asp:BoundColumn DataField="message_id" HeaderText="序號">

</asp:BoundColumn>

<asp:HyperLinkColumn DataNavigateUrlField="message_id" DataNavigateUrlFormatString="message_show.aspx?id={0}"

DataTextField="message_title" HeaderText="主題">

</asp:HyperLinkColumn>

<asp:BoundColumn DataField="message_author" HeaderText="作者">

</asp:BoundColumn>

         <asp:BoundColumn DataField="message_time" HeaderText="時間">

</asp:BoundColumn>

       </Columns>

<PagerStyle Visible="False" HorizontalAlign="Right"  Mode="NumericPages"></PagerStyle>

              </asp:DataGrid>

       <asp:LinkButton id="btnFirst" runat="server" CssClass="ziti" CommandArgument="0" OnClick="PagerButtonClick">首頁</asp:LinkButton>&nbsp;

       <asp:LinkButton id="btnPrev" runat="server" CommandArgument="prev" OnClick="PagerButtonClick" CssClass="ziti">上一頁</asp:LinkButton>&nbsp;

       <asp:LinkButton id="btnNext" runat="server" CssClass="ziti" CommandArgument="next" OnClick="PagerButtonClick">下一頁</asp:LinkButton>&nbsp;

<asp:LinkButton id="btnLast" runat="server" CssClass="ziti" CommandArgument="last" OnClick="PagerButtonClick">末頁</asp:LinkButton>&nbsp;                             <asp:TextBox id="tbPage" runat="server" Width="40px" CssClass="ziti">1</asp:TextBox>

       <asp:LinkButton id="btnLink" οnclick="PagerButtonClick" runat="server" CssClass="ziti" CommandArgument="custom">跳轉</asp:LinkButton></td>

                            </tr>

                            <tr>

                                   <td align="center" style="HEIGHT: 17px">&nbsp;</td>

                            </tr>

                            <tr>

                                   <td align="center">&nbsp;</td>

                            </tr>

                     </table>

              </form>

 

message_index.aspx.cs:

using System.Data.SqlClient;

using System.Configuration;

 

         protected System.Web.UI.WebControls.LinkButton btnPrev;

         protected System.Web.UI.WebControls.LinkButton btnNext;

         protected System.Web.UI.WebControls.LinkButton btnFirst;

         protected System.Web.UI.WebControls.LinkButton btnLast;

         protected System.Web.UI.WebControls.TextBox tbPage;

 

         protected System.Web.UI.WebControls.DataGrid myDataGrid;

         protected System.Web.UI.WebControls.LinkButton btnLink;

         //聲明表格對象

         DataTable Cart;

         //聲明視圖對象

         DataView CartView;

 

 

         private void Page_Load(object sender, System.EventArgs e)

         {

              // 在此處放置用戶代碼以初始化頁面

              if(Session["DG6_ShoppingCart"] ==null)

              {

                   Cart = new DataTable();

                   //建立數據庫

                   SqlConnection  con=new SqlConnection();

                   con.ConnectionString=ConfigurationSettings.AppSettings["ConnectionString"];

                   //創建SqlDataAdapter對象

                   SqlDataAdapter cmd=new SqlDataAdapter("select message_id,message_title,message_content,message_time,message_author from message order by message_id",con);

                   //創建DataSet對象

                   DataSet ds = new DataSet();

                   //將查詢結果填充到DataSet對象中

                   cmd.Fill(ds,"message");

                   Cart=ds.Tables["message"];

                  

                   Session["DG6_ShoppingCart"]=Cart;

              }

              else

              {

              Cart = (DataTable)Session["DG6_ShoppingCart"];

              }

              CartView= new DataView(Cart);

              CartView.Sort = "message_id";

 

              if(!Page.IsPostBack)

              {   

                   BindGrid();

              }

         }

 

 

         public void myDataGrid_Page(Object sender,DataGridPageChangedEventArgs e)

              {

                     this.myDataGrid.CurrentPageIndex=e.NewPageIndex;

                     BindGrid();

              }

 

         public void BindGrid()

         {

             this.myDataGrid.DataSource = CartView;

              this.myDataGrid.DataBind();

         }

 

         public void PagerButtonClick(object sender,EventArgs e)

         {

         //使用自定義的分頁聯接

              string arg = ((LinkButton)sender).CommandArgument;

              switch(arg)

              {

                   case("next")://當單擊下一爺時

                       if(myDataGrid.CurrentPageIndex <( myDataGrid.PageCount-1))

                            myDataGrid.CurrentPageIndex ++ ;

                       break;

                   case("prev")://當單擊了上一頁時

                       if(myDataGrid.CurrentPageIndex > 0)

                            myDataGrid.CurrentPageIndex -- ;

                       break;

                   case("last")://當單擊了最後一頁時

                       myDataGrid.CurrentPageIndex = (myDataGrid.PageCount-1);

                       break;

                   case("custom")://當跳轉到特定頁時

                       int page=Convert.ToInt32(tbPage.Text);

                       if((page<(myDataGrid.PageCount+1))&&(page>0))

                            myDataGrid.CurrentPageIndex=page-1;

                       break;

                   default:

                       //跳轉到一定頁

                       myDataGrid.CurrentPageIndex = Convert.ToInt32(arg);

                       break;

              }

              BindGrid();

         }

DataGrid中確定刪除效果:

<head>
<script>
function del(num)
{
if(confirm("
您確實要刪除這個文件嗎?"))
    {
        document.location.href="Del.aspx?ID=" + num;
    }
}

</script>
</head>

....

<asp:datagrid>
<columns>
....
<asp:HyperLinkColumn Text="
刪除" DataNavigateUrlField="編號
" DataNavigateUrlFormatString="javascript:del({0})"></asp:HyperLinkColumn>
</columns>
</asp:datagrid>

 

 

delete_user.aspx.cs

cmd.CommandText = "Delete from user_info where user_id='"+Request.QueryString["id"]+"'" ;

 

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