WEB开发网
开发学院WEB开发ASP.NET GridView 分页导航 阅读

GridView 分页导航

 2007-02-19 17:22:43 来源:WEB开发网   
核心提示:自己做的一个项目中所运用到的技术:|1. 日历控件(带时分秒)2. GridView 批量删除,自定义分页,定位页码3. GridView 修改4. GridView 鼠标经过改变行的颜色效果如下:HTML:<%@ Page Language="C#" AutoEventWireup=&qu

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

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="宋体"> </FONT><FONT face="宋体"> 合作商名称
                       <asp:textbox id="TStfName" runat="server" BorderStyle="Groove" Width="144px"></asp:textbox> </FONT></td>
                 </tr>
                 <tr>
                   <td style="height: 30px"> <FONT face="宋体"> 添加时间 </FONT>
                     <asp:textbox id="StartTime" runat="server" Width="159px"></asp:textbox> 到
                     <asp:textbox id="EndTime" runat="server" Width="160px"></asp:textbox>  <FONT face="Times New Roman">  </FONT></td>
                 </tr>
                 <TR>
                   <TD height="30"><FONT face="宋体">   <FONT face="宋体">
                         <asp:button id="SelectClient" runat="server" Text="搜 索" ></asp:button>  </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="<input type='checkbox' id='chk' name='chk'   />全选">
                   <ItemTemplate>
                     <input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "StfId")%>' />
                   </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"
               runat="server">首 页</asp:LinkButton> <asp:LinkButton ID="btnPrev" CommandArgument="prev" runat="server">上一页</asp:LinkButton>
             <asp:LinkButton ID="btnNext" CommandArgument="next" runat="server">下一页</asp:LinkButton>
             <asp:LinkButton ID="btnLast" CommandArgument="last" 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">
              操作:
             <asp:Button ID="Button3" runat="server" 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 = "";
     // 在此处放置用户代码以初始化页面 http://www.cncms.com
     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("");
   }
 
}

Tags:GridView 导航

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接