您的位置:首页 > 其它

GridView自定义分页导航(转)

2007-11-06 11:16 387 查看
自己做的一个项目中所运用到的技术:|

1. 日历控件(带时分秒)
2. GridView 批量删除,自定义分页,定位页码
3. GridView 修改
4. GridView 鼠标经过改变行的颜色
效果如下:



源码在:http://blog.csdn.net/heker2007/archive/2007/03/04/1520093.aspx

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" onfocus="setday(this)" runat="server" Width="159px"></asp:textbox> 到


<asp:textbox id="EndTime" onfocus="setday(this)" 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="搜 索" onclick="SelectClient_Click"></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' onclick='checkJs(this.checked);' />全选">


<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> <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">


 操作:


<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("");


}




}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: