--用户自定义控件 用于分页datagrid(2003的控件 05后叫gridview )
chagepage.aspx页面
[code]
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="changePage.ascx.cs" Inherits="changePage" %>
<div>
<table width="100%">
<tr>
<td>
当前第<asp:Label ID="lblcurrentCount" runat="server"></asp:Label>页
</td>
<td>
共<asp:Label ID="lblpageCount" runat="server"></asp:Label>页
</td>
<td>
第<asp:DropDownList ID="ddlnextPage" runat="server"></asp:DropDownList>页
<asp:Button ID="btngo" runat="server" Text=" GO " οnclick="btngo_Click"/>
</td>
</tr>
</table>
</div>
[/code]
chagepage.aspx.cs页面
[code]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MyApplication;
public partial class changePage : System.Web.UI.UserControl
{
public ClickEventHandler Handler
{ get; set; }
#region 属性
//当前页
public string CurrentPage
{
get
{
if (ViewState["currentPage"] == null)
{
return "1";
}
return ViewState["currentPage"].ToString();
}
set
{
ViewState["currentPage"] = value;
}
}
public string PageCount
{
get
{
if (ViewState["pageCount"] == null)
{
return "1";
}
return ViewState["pageCount"].ToString();
}
set
{
ViewState["pageCount"] = value;
}
}
#endregion
public event XiaoEventHandler XiaoClick;
protected void Page_Load(object sender, EventArgs e)
{
Button btnsearch = this.Page.FindControl("btnSearch") as Button;
Handler += BindDDL;
if (!IsPostBack)
{
BindDDL();
}
}
public void BindDDL()
{
ddlnextPage.Items.Clear();
int i = int.Parse(PageCount);
for (int t = 1; t <= i; t++)
{
ddlnextPage.Items.Add(t.ToString());
}
lblcurrentCount.Text = this.CurrentPage;
lblpageCount.Text = this.PageCount;
}
protected void btngo_Click(object sender, EventArgs e)
{
this.CurrentPage = ddlnextPage.SelectedItem.Text;
lblcurrentCount.Text = this.CurrentPage;
//lblpageCount.Text = this.PageCount;
OnXiaoClick();
}
protected virtual void OnXiaoClick()
{
if (XiaoClick != null)
{
XiaoClick(int.Parse(CurrentPage));
}
}
}
[/code]
因为只是个demo 所以用comm.cs 代表通用层 用 BLLlogic.cs 代表逻辑层 DALBase代表数据库访问层
Comm.cs页面
[code]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
/// <summary>
/// Summary description for Comm
/// </summary>
namespace MyApplication
{
public delegate void XiaoEventHandler(int currentCount);
public delegate void ClickEventHandler();
}
public class Comm
{
public Comm()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// 弹出消息框
/// </summary>
/// <param name="page"></param>
/// <param name="key"></param>
/// <param name="Message"></param>
public static void Show(System.Web.UI.Page page, string key, string Message)
{
string myScript = @"alert('" + Message + "');";
if (!page.ClientScript.IsClientScriptBlockRegistered(key))
{
page.ClientScript.RegisterClientScriptBlock(page.GetType(), key, myScript, true);
}
}
/// <summary>
/// 判断是否为空
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public static bool CheckDatasetISNULL(DataSet ds)
{
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
return false;
}
return true;
}
public static string CheckObjectISNULL(object str)
{
if (str == null || str.ToString().Trim() == string.Empty)
{
return "";
}
return str.ToString().Trim();
}
public static string ReturnZoreWhenempty(string str)
{
if (str == string.Empty)
{
return "0";
}
else
{
return str;
}
}
}
[/code]
BLLlogic.cs页面
[code]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Text;
using System.IO;
/// <summary>
/// Summary description for BLLLogic
/// </summary>
public class BLLLogic
{
public BLLLogic()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
///验证用户合法性
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <returns></returns>
public bool CheckUserNameAndPassword(string userName, string password)
{
DALBase dal = new DALBase();
string str = dal.CheckUserNameAndPassword(userName, password);
if (str.Trim() != "")
{
return true;
}
return false;
}
public bool InsertUserInfo(string userName, string password)
{
DALBase dal = new DALBase();
int count = dal.InsertUserInfo(userName, password);
if (count > 0)
{
return true;
}
return false;
}
public DataSet GetSchemaInfo()
{
DataSet ds = new DALBase().GetSchemaInfo();
return ds;
}
public DataSet GetTypeInfo()
{
DataSet ds = new DALBase().GetTypeInfo();
return ds;
}
/// <summary>
/// 检察菜单文本是否存在
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public bool CheckExistFile(string fileName)
{
return File.Exists(HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath + "//" + fileName));
}
public void WriteMenuJS()
{
string str = GetMenuInfo();
string path = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath);
using (StreamWriter sw = new StreamWriter(path + "//" + "MENU_ITEMS.js"))
{
sw.Write(str);
}
}
public string GetMenuInfo()
{
DataSet ds = new DALBase().GetMenuInfo();
if (!Comm.CheckDatasetISNULL(ds))
{
StringBuilder sb = new StringBuilder(6000);
sb.Append("var MENU_ITEMS = [");
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "nodepid=0";
string nodeid = "";
string nodename = "";
string url = "";
//i 是计数器 n是项数
int i = 0, n = 0;
foreach (DataRowView dvi in dv)
{
n++;
}
foreach (DataRowView viewrow in dv)
{
i++;
nodeid = Comm.CheckObjectISNULL(viewrow["nodeID"]);
nodename = Comm.CheckObjectISNULL(viewrow["nodeName"]);
url = Comm.CheckObjectISNULL(viewrow["urlPath"]);
sb.Append(ConcatenateHTMLString(nodeid, nodename, url, ds, i, n));
GetMenuChilds(Comm.CheckObjectISNULL(viewrow["nodeID"]), ds, sb);
if (n - i == 0)
{
sb.Append("]");
}
else
{
sb.Append("],");
}
}
return sb.Append(" ] ;").ToString();
}
else
{
return "";
}
}
public void GetMenuChilds(string nodeid, DataSet ds, StringBuilder sb)
{
DataView dvTreeData = ds.Tables[0].DefaultView;
dvTreeData.RowFilter = "nodepid=" + nodeid;
string nid = "";
string nodename = "";
string url = "";
int i = 0, n = 0;
foreach (DataRowView dvi in dvTreeData)
{
n++;
}
foreach (DataRowView viewrow in dvTreeData)
{
i++;
nid = Comm.CheckObjectISNULL(viewrow["nodeID"]);
nodename = Comm.CheckObjectISNULL(viewrow["nodeName"]);
url = Comm.CheckObjectISNULL(viewrow["urlPath"]);
sb.Append(ConcatenateHTMLString(nid, nodename, url, ds, i, n));
GetMenuChilds(Comm.CheckObjectISNULL(viewrow["nodeID"]), ds, sb);
if (n - i == 0)
{
sb.Append("]");
}
else
{
sb.Append("],");
}
}
}
/// <summary>
/// 拼js串
/// </summary>
/// <returns></returns>
public string ConcatenateHTMLString(string nodeid, string nodename, string url, DataSet ds, int cn, int tn)
{
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "nodepid=" + nodeid;
int count = 0;
//判断当前节点下是否还有子项
foreach (DataRowView viewrow in dv)
{
count++;
break;
}
if (count > 0)
{
if (url == string.Empty)
{
return " [ '" + nodename + "'" + "," + "null " + "," + "null" + ",";
}
else
{
return " [ '" + nodename + "'" + "," + "'" + url + "'" + "," + "null" + ",";
}
}
else
{
if (url == string.Empty)
{
return " [ '" + nodename + "'" + "," + "null ";
}
else
{
return " [ '" + nodename + "'" + "," + "'" + url +"'";
}
}
}
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="currPage"> 当前页数</param>
/// <param name="count"> 每页显示页数</param>
/// <param name="userSchema"> 要查询的用户名称</param>
/// <param name="userType"> 要查询的用户类型</param>
/// <param name="objectName"> 要查询的对像名称</param>
/// <returns> 获取用户信息</returns>
public DataSet GetUserOjbectSchemaInfo(int currPage, int count, string userSchema, string userType, string objectName)
{
return new DALBase().GetUserOjbectSchemaInfo(currPage,count,userSchema,userType,objectName);
}
}
[/code]
DALBase.cs页面
[code]
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using System.Web;
using System.Configuration;
/// <summary>
/// Summary description for DALBase
/// </summary>
public class DALBase
{
public DALBase()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// 验证用户合法性
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <returns></returns>
public string CheckUserNameAndPassword(string userName, string password)
{
string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand("P_CheckUser", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
#region 为cmd参数
OracleParameter para = new OracleParameter();
para.ParameterName="UserName";
para.DbType = System.Data.DbType.String;
para.Direction = System.Data.ParameterDirection.InputOutput;
para.Value = userName;
cmd.Parameters.Add(para);
cmd.Parameters.Add("Password", System.Data.DbType.String).Value = password;
#endregion
try
{
userName = "";
conn.Open();
cmd.ExecuteScalar();
userName = cmd.Parameters[0].Value.ToString();
}
catch(Exception e)
{
throw e;
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return userName;
}
/// <summary>
/// 新加用户
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <returns></returns>
public int InsertUserInfo(string userName, string password)
{
string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand("P_InsertUser", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
#region 为cmd参数
cmd.Parameters.Add("userName", System.Data.DbType.String).Value = userName;
cmd.Parameters.Add("Password", System.Data.DbType.String).Value = password;
#endregion
int count = 0;
try
{
conn.Open();
count = Convert.ToInt32( cmd.ExecuteOracleScalar());
}
catch (Exception e)
{
throw e;
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return count>0?1:0;
}
public DataSet GetSchemaInfo()
{
DataSet ds = new DataSet();
string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand("P_SelectSchema", conn);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add("mycur", OracleType.Cursor).Direction = ParameterDirection.Output;
OracleDataAdapter oda = new OracleDataAdapter(cmd);
try
{
oda.Fill(ds);
}
catch (Exception e)
{
throw e;
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return ds;
}
public DataSet GetTypeInfo()
{
DataSet ds = new DataSet();
string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand("P_SelectType", conn);
cmd.Parameters.Add("mycur", OracleType.Cursor).Direction=ParameterDirection.Output;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
OracleDataAdapter oda = new OracleDataAdapter(cmd);
try
{
oda.Fill(ds);
}
catch (Exception e)
{
throw e;
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return ds;
}
/// <summary>
/// 获取一级菜单信息
/// </summary>
/// <returns></returns>
public DataSet GetMenuInfo()
{
DataSet ds = new DataSet();
string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
OracleConnection conn = new OracleConnection(connstr);
OracleCommand cmd = new OracleCommand("P_SelectMenuInfo", conn);
cmd.Parameters.Add("mycur", OracleType.Cursor).Direction = ParameterDirection.Output;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
OracleDataAdapter oda = new OracleDataAdapter(cmd);
try
{
oda.Fill(ds);
}
catch (Exception e)
{
throw e;
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return ds;
}
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="currPage"> 当前页数</param>
/// <param name="count"> 每页显示页数</param>
/// <param name="userSchema"> 要查询的用户名称</param>
/// <param name="userType"> 要查询的用户类型</param>
/// <param name="objectName"> 要查询的对像名称</param>
/// <returns> 获取用户信息</returns>
public DataSet GetUserOjbectSchemaInfo(int currPage, int count, string userSchema, string userType, string objectName)
{
DataSet ds= new DataSet();
string connString = ConfigurationManager.AppSettings["oracleConnection"];
OracleConnection conn = new OracleConnection(connString);
OracleCommand cmd = new OracleCommand("P_SelectUserObjectSchemaInfo", conn);
#region 存储过程参数
cmd.Parameters.Add("currentPage", DbType.Int32).Value = currPage;
cmd.Parameters.Add("recount", DbType.Int32).Value = count;
cmd.Parameters.Add("userSchema", DbType.String).Value = userSchema;
cmd.Parameters.Add("userType", DbType.String).Value = userType;
cmd.Parameters.Add("objectName", DbType.String).Value = objectName;
cmd.Parameters.Add("mycur",OracleType.Cursor).Direction = ParameterDirection.Output;
#endregion
cmd.CommandType = CommandType.StoredProcedure;
OracleDataAdapter oda = new OracleDataAdapter(cmd);
try
{
oda.Fill(ds);
}
catch (Exception e)
{
throw e;
}
finally
{
if (conn != null)
{
conn.Close();
}
}
return ds;
}
}
[/code]