GridView自定义分页导航

来源:互联网 发布:java主流框架 编辑:程序博客网 时间:2024/05/06 11:54

 http://blog.csdn.net/mengyao/archive/2007/02/19/1511765.aspx

自己做的一个项目中所运用到的技术:|

1.         日历控件(带时分秒)
2.         GridView 批量删除,自定义分页,定位页码
3.         GridView 修改
4.        GridView 鼠标经过改变行的颜色
效果如下:
HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="StfCmpManager.aspx.cs" Inherits="StfCmpManager" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    
<title>合作商信息维护</title>
    
<script language="javascript" type="text/javascript">    
    
// 判断多选是否与选中项(没有选中的返回false)
    function slcNo_click()
    
{
        
if (document.form1.checkboxname.length)
        
{
            
for (var i=0;i<document.form1.checkboxname.length;i++)
            
{
                
if(document.form1.checkboxname[i].checked)
                
{
                    
return true;
                }

            }

        }

        
else
        
{
            
if(document.form1.checkboxname.checked)
            
{
                
return true;
            }

        }

        alert(
"请选择后再操作!");
        
return false;
    }

    
    
// 鼠标经过改变行的颜色
    if (!objbeforeItem)
    
{
        var objbeforeItem
=null;
        var objbeforeItembackgroundColor
=null;
    }
    
    function ItemOver(obj)
    
{
        
if(objbeforeItem)
        
{
            objbeforeItem.style.backgroundColor 
= objbeforeItembackgroundColor;
        }

        objbeforeItembackgroundColor 
= obj.style.backgroundColor;
        objbeforeItem 
= obj;
        obj.style.backgroundColor 
= "#B9D1F3";     
    }

    
//        
 
    
// 多选的全选与取消
    function checkJs(boolvalue)
    
{
        
if(document.all.checkboxname.length>1)
        
{
            
for(var i=0;i<document.all.checkboxname.length;i++)
            
{
                document.all.checkboxname[i].
checked = boolvalue;            
            }

        }

        
else
            document.all.checkboxname.
checked = boolvalue;
    }

    
//
    
    
// 只有全部选中时“全选”选中
    function SingleCheckJs()
    
{
        var flag1
=false;
        var flag2
=false;
        
        
if (document.form1.checkboxname.length)
        
{
            
for (var i=0;i<document.form1.checkboxname.length;i++)
            
{
                
if(document.form1.checkboxname[i].checked)
                    flag1 
= true;
                
else
                    flag2 
= true;
            }

        }

        
else
        
{
            
if(document.form1.checkboxname.checked)
                flag1 
= true;
            
else
                flag2 
= true;
        }

        
        
if(flag1==true&&flag2==false)
            document.getElementById(
"chk").checked = true;
        
else
            document.getElementById(
"chk").checked = false;
    }

   
    
</script>  
<script type="text/javascript" language="javascript" src="Selecttime/calendar.js"></script>      
</head>
<body>
    
<form id="form1" runat="server">
            
<table id="Table10" cellSpacing="0" cellPadding="0" border="0" Style="z-index: 103;
            left: 21px; position: absolute; top: 20px; width: 90%;">
                <tr>
                    
<td bgColor="#fafafa">
                        
<FIELDSET style="BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 45px"><LEGEND><FONT face="宋体" size="2">合作商查询</FONT></LEGEND>
                            
<table id="Table1" height="40" cellSpacing="0" cellPadding="0" width="100%" align="center"
                                border
="0">
                                
<tr>
                                    
<td height="30"><FONT face="宋体">&nbsp;</FONT><FONT face="宋体">&nbsp;合作商名称
                                            
<asp:textbox id="TStfName" runat="server" BorderStyle="Groove" Width="144px"></asp:textbox>&nbsp;</FONT></td>
                                
</tr>
                                
<tr>
                                    
<td style="height: 30px">&nbsp;<FONT face="宋体"> 添加时间 </FONT>
                                        
<asp:textbox id="StartTime" onfocus="setday(this)" runat="server" Width="159px"></asp:textbox>&nbsp;到
                                        
<asp:textbox id="EndTime" onfocus="setday(this)" runat="server" Width="160px"></asp:textbox>&nbsp;&nbsp;&nbsp;<FONT face="Times New Roman">&nbsp;&nbsp;&nbsp;</FONT></td>
                                
</tr>
                                
<TR>
                                    
<TD height="30"><FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT face="宋体">
                                                
<asp:button id="SelectClient" runat="server" Text="搜 索" onclick="SelectClient_Click"></asp:button>&nbsp;&nbsp;&nbsp;</FONT></FONT></TD>
                                
</TR>
                            
</table>
                        
</FIELDSET>
                    
</td>
                
</tr>
            
</table>
            
<table cellpadding="0" cellspacing="0" border="0" Style="z-index: 103;
            left: 21px; position: absolute; top: 140px; width: 90%;">
                <tr bgColor="#6B696B">
                    
<td align="center" style="width: 85%">
                        
<asp:GridView ID="GridView1" runat="server" Width="100%" CellPadding="4" ForeColor="#333333"
                            AutoGenerateColumns
="False" AllowPaging="True" BorderColor="Silver"
                            BorderStyle
="Solid" BorderWidth="1px" OnRowDataBound="GridView1_RowDataBound"
                            ShowFooter
="false" EmptyDataText="没有数据记录!!" AllowSorting="True" OnSorting="GridView1_Sorting">
                            
<Columns>
                                
<asp:BoundField HeaderText="编号" DataField="id" Visible="False" />
                                
<asp:TemplateField HeaderText="&lt;input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);'  /&gt;全选">
                                    
<ItemTemplate>
                                        
<input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "StfId")%>' onclick='SingleCheckJs();' />
                                    
</ItemTemplate>
                                
</asp:TemplateField>

                                
<asp:TemplateField HeaderText="序号">
                                    
<ItemTemplate>
                                        
<%# (Container.DataItemIndex+1).ToString()%>
                                    
</ItemTemplate>
                                
</asp:TemplateField>
                                
<asp:TemplateField HeaderText="充值">
                                    
<ItemTemplate>
                                        
<%#GetClientVisitInfoShowCmpMoney(DataBinder.Eval(Container.DataItem,"StfId"),DataBinder.Eval(Container.DataItem,"StfName"))%>
                                    
</ItemTemplate>
                                
</asp:TemplateField>                                                       
                                
<asp:BoundField HeaderText="公司名称" DataField="StfCmpName" SortExpression="StfCmpName"/>
                                
<asp:BoundField HeaderText="登陆名" DataField="StfName" SortExpression="StfName" />
                                
<asp:BoundField HeaderText="帐户金额" DataField="StfCmpMoney" SortExpression="StfCmpMoney" />
                                
<asp:BoundField HeaderText="帐户Q币" DataField ="StfQbmoney" SortExpression="StfQbmoney" />
                                
<asp:BoundField HeaderText="合作日期" DataField="StfRegisterTime" HtmlEncode="False" SortExpression="StfRegisterTime" />
                                
<asp:TemplateField HeaderText="操作" >
                                    
<ItemTemplate>
                                        
<%#GetClientVisitInfoShowAnchorStr(DataBinder.Eval(Container.DataItem,"StfId"),DataBinder.Eval(Container.DataItem,"StfName"))%>
                                    
</ItemTemplate>
                                
</asp:TemplateField>
                            
</Columns>
                            
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                            
<EditRowStyle BackColor="#999999" />
                            
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                            
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                            
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                            
<PagerSettings Visible="False" />
                            
<HeaderStyle Font-Bold="False" Font-Italic="False" />
                        
</asp:GridView>
                    
</td>
                
</tr>
                
<tr>
                    
<td align="center" style="height: 25px; width: 569px;">
                        
<asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick"
                            runat
="server">首 页</asp:LinkButton>&nbsp;<asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick" runat="server">上一页</asp:LinkButton>
                        
<asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick" runat="server">下一页</asp:LinkButton>
                        
<asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick" runat="server">尾 页</asp:LinkButton>
                        
<asp:Label ID="LblCurrentIndex" runat="server"></asp:Label>
                        
<asp:Label ID="LblPageCount" runat="server"></asp:Label>
                        
<asp:Label ID="LblRecordCount" runat="server"></asp:Label>
跳转到第
<asp:DropDownList ID="ddlCurrentPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 
</asp:DropDownList></td>                <tr>
                    
<td style="width: 569px">
                        
&nbsp;操作:
                        
<asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="删除合作商" />
                    
</td>
                
</tr>
            
</table>            
       
</form>
</body>
</html>
CS:
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 System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class StfCmpManager : System.Web.UI.Page
{
    
protected void Page_Load(object sender, System.EventArgs e)
    
{
       
        
string StfRight = "";
        
// 在此处放置用户代码以初始化页面
        if (Session["UserId"== null)
        
{
            Response.Write(
"<script language='javascript'>alert('工作超时,请重新登录。');top.window.location='default.aspx';</script>");
            
return;
        }

        
else
        
{
            StfRight 
= Session["UserRight"].ToString().Trim();

            
if (!this.IsPostBack)
            
{
 
                
if (StfRight != "7" && StfRight != "8")
                
{
                    Response.Write(
"<script language='javascript'>alert('你没有权限察看此页。');top.window.location='default.aspx';</script>");
                    
return;
                }


                GridViewBind(
"");
            }

        }


    }

    
private void GridViewBind(string Sqlsort)
    
{
        
string where = string.Empty;
        
where = "and a.StfRight='6' and a.StfId=b.Stfid";
        
if (TStfName.Text.Trim() != "")
        
{
            
where += " and a.StfCmpName like '%" + TStfName.Text.Trim() + "%'";
        }



        
if (StartTime.Text.Trim() != "")
        
{
            
where += " and a.StfRegistertime >= '" + StartTime.Text + "'";
        }

        
if (EndTime.Text.Trim() != "")
        
{
            
where += " and a.StfRegistertime <= '" + EndTime.Text + "'";
        }


        
if (where != string.Empty)
        
{
            
where = "Where " + where.Substring(4);
        }

        
string connStr = ConfigurationManager.AppSettings.Get("DataConnectionString");
        
string SqlStr = "Select a.StfId as StfId,a.StfName as StfName,a.StfRealName as StfRealName,a.StfCmpName as StfCmpName,b.StfCmpMoney as StfCmpMoney,b.StfQbmoney as StfQbmoney,a.StfRegistertime as StfRegistertime From TStafferInfo a,TCmpMoney b " + where + Sqlsort;
        
//Response.Write(SqlStr);
        
//Response.End();       
        DataSet ds = new DataSet();

        
try
        
{
            SqlConnection conn 
= new SqlConnection(connStr);
            
if (conn.State.ToString() == "Closed") conn.Open();

            SqlDataAdapter da 
= new SqlDataAdapter(SqlStr, conn);
            da.Fill(ds, 
"TStafferInfo");
            
if (conn.State.ToString() == "Open") conn.Close();

            GridView1.DataSource 
= ds.Tables[0].DefaultView;
            GridView1.DataBind();

            LblCurrentIndex.Text 
= "第 " + (GridView1.PageIndex + 1).ToString() + " 页";
            LblPageCount.Text 
= "共 " + GridView1.PageCount.ToString() + " 页";
            LblRecordCount.Text 
= "总共 " + ds.Tables[0].Rows.Count.ToString() + " 条";
            
if (ds.Tables[0].Rows.Count == 0)
            
{
                btnFirst.Visible 
= false;
                btnPrev.Visible 
= false;
                btnNext.Visible 
= false;
                btnLast.Visible 
= false;

                LblCurrentIndex.Visible 
= false;
                LblPageCount.Visible 
= false;
                LblRecordCount.Visible 
= false;
            }

            
else if (GridView1.PageCount == 1)
            
{
                btnFirst.Visible 
= false;
                btnPrev.Visible 
= false;
                btnNext.Visible 
= false;
                btnLast.Visible 
= false;
            }


            
// 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页"
            btnFirst.CommandName = "1";
            btnPrev.CommandName 
= (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString());

            btnNext.CommandName 
= (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString());
            btnLast.CommandName 
= GridView1.PageCount.ToString();
            
//

            
this.ddlCurrentPage.Items.Clear();
            
for (int i = 1; i <= this.GridView1.PageCount; i++)
            
{
                
this.ddlCurrentPage.Items.Add(i.ToString());
            }

            
this.ddlCurrentPage.SelectedIndex = this.GridView1.PageIndex; 


        }

        
catch (Exception ex)
        
{
            Response.Write(
"数据库错误,错误原因:" + ex.Message);
            Response.End();
        }

    }

    
protected void PagerButtonClick(object sender, EventArgs e)
    
{
        GridView1.PageIndex 
= Convert.ToInt32(((LinkButton)sender).CommandName) - 1;
        GridViewBind(
"");
    }


    
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    
{
        e.Row.Attributes[
"onmouseover"= "ItemOver(this)";
    }



    
protected void Button1_Click(object sender, EventArgs e)
    
{
        Response.Write(Request.Form.Get(
"RadioName"));
    }

    
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    
{
        
string sql = "";

        
if (ViewState["DataConnectionString"== null || ViewState["DataConnectionString"].ToString().CompareTo(""== 0)
        
{
            ViewState[
"DataConnectionString"= " desc";
        }

        
else
            ViewState[
"DataConnectionString"= "";

        sql 
= " order by " + e.SortExpression + ViewState["DataConnectionString"];
        GridViewBind(sql);

        
//DataFormatString="{0:yyyy年MM月dd日 hh时mm分ss秒}"
    }

    
    
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    
{
        
this.GridView1.PageIndex = this.ddlCurrentPage.SelectedIndex;
        GridViewBind(
"");
    }


    
private bool CheckAddClientInfoForm()
    
{
        
int Tag = 0;



        
if (Tag == 1)
        
{

            Response.Write(
"<script>alert('请将带*项填写!')</script>");
            
return false;
        }

        
if (Tag == 2)
        
{

            Response.Write(
"<script>alert('两次输入密码不同')</script>");
            
return false;
        }

        
else
        
{
            
return true;
        }

    }


    
public string GetClientVisitInfoShowAnchorStr(object StfId, object StfName)
    
{
        
string AnchorStr = "<a href='#'><Div onclick='javascript:window.open("TManageModify.aspx?StfId=" + StfId + "&StfName=" + StfName + "","","height=280,Width=600,scrollbars=yes,resizable=yes,status=no")'>修改</Div></a>";
        
return AnchorStr;
    }

    
public string GetClientVisitInfoShowCmpMoney(object StfId, object StfName)
    
{
        
string AnchorStr = "<a href='#'><Div onclick='javascript:window.open("StfCmpMoneyInfo.aspx?StfId=" + StfId + "&StfName=" + StfName + "","","height=250,Width=500,scrollbars=yes,resizable=yes,status=no")'>充值</Div></a>";
        
return AnchorStr;
    }

    
protected void Button3_Click(object sender, EventArgs e)
    
{
        
string str = "";
        
string[] ckb = null;

        str 
= Request.Form.Get("checkboxname");
        ckb 
= str.Split(new char[] ',' });
        
for (int i = 0; i < ckb.Length; i++)
        
{   //帐户和信息同时删除
            string StrSql = " Delete TStafferInfo where StfId ='" + ckb[i] + "'";
            String StrSql_d 
= " Delete TCmpMoneyInfo where StfId ='" + ckb[i] + "'";
            SqlConnection Conn 
= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings.Get("DataConnectionString"));
            SqlCommand Cmd 
= new System.Data.SqlClient.SqlCommand(StrSql, Conn);
            SqlCommand Cmd_d 
= new System.Data.SqlClient.SqlCommand(StrSql_d, Conn);

            Conn.Open();
            SqlTransaction Trans 
= Conn.BeginTransaction();
            
try
            
{
                Cmd.Transaction 
= Trans;
                Cmd_d.Transaction 
= Trans;
                Cmd.ExecuteNonQuery();
                Cmd_d.ExecuteNonQuery();
                Trans.Commit();

            }

            
catch (Exception Err)
            
{
                Trans.Rollback();
                Response.Write(Err.Message);
            }


        }

        Response.Write(
"<script>window.close();alert('操作员删除成功!');</script>");
        GridViewBind(
"");
    }


    
protected void SelectClient_Click(object sender, EventArgs e)
    
{
        GridViewBind(
"");
    }

 
}



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1511765