在页面上用RadioButtonList控件,HTML代码如下:
<%
...
@ Page Language="C#" AutoEventWireup="true" CodeFile="LoginLog.aspx.cs" Inherits="Admin_LoginLog"
StylesheetTheme="Default" Theme="Default"
%>

<!
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
runat
="server"
>
<
title
>
登录日志
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
fieldset
>
<
legend
>
相关设置
</
legend
>
<
div
id
="tabsF"
>
<
ul
>
<
li
><
a
href
="Default.aspx"
title
="返回"
><
span
>
返回
</
span
></
a
></
li
>
</
ul
>
</
div
>
</
fieldset
>
<
fieldset
>
<
legend
>
登录日志
</
legend
>
<!--
注:此单选列表的值,不要轻易进行修改,
由于,它和后台类库有直接的关联,进行修改
可能会造成,不能正确地查询数据。
-->
<
asp:RadioButtonList
ID
="rbtnLoginLog"
runat
="server"
RepeatDirection
="Horizontal"
AutoPostBack
="True"
OnSelectedIndexChanged
="rbtnLoginLog_SelectedIndexChanged"
>
<
asp:ListItem
Value
="0"
Selected
="True"
>
今天
</
asp:ListItem
>
<
asp:ListItem
Value
="1"
>
本周
</
asp:ListItem
>
<
asp:ListItem
Value
="2"
>
本月
</
asp:ListItem
>
<
asp:ListItem
Value
="3"
>
本年
</
asp:ListItem
>
<
asp:ListItem
Value
="4"
>
全部
</
asp:ListItem
>
</
asp:RadioButtonList
>
<
asp:Button
ID
="btnOut"
runat
="server"
Text
="导出"
OnClick
="btnOut_Click"
/>
<
asp:Button
ID
="btnDel"
runat
="server"
Text
="删除"
OnClick
="btnDel_Click"
/>
<
asp:GridView
ID
="gvLoginLog"
runat
="server"
AutoGenerateColumns
="False"
SkinID
="Default_GridView"
>
<
Columns
>
<
asp:BoundField
DataField
="LoginTime"
HeaderText
="登录时间"
/>
<
asp:BoundField
DataField
="UserName"
HeaderText
="登录用户"
/>
<
asp:BoundField
DataField
="LoginIP"
HeaderText
="登录地址"
/>
</
Columns
>
</
asp:GridView
>
</
fieldset
>
</
form
>
</
body
>
</
html
>
网页后面的页面代码如下:
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;

public
partial
class
Admin_LoginLog : System.Web.UI.Page

...
{
public WebUtility.OutExcel myOut = new WebUtility.OutExcel();
WebUtility.SysUser user = new WebUtility.SysUser();
protected void Page_Load(object sender, EventArgs e)

...{
if (!Page.IsPostBack)

...{
//默认显示的日志是当天的
this.gvLoginLog.DataSource = user.DataSetLoginLog(WebUtility.SysUser.LoginLogType.today);
this.gvLoginLog.DataBind();
}
}

protected void rbtnLoginLog_SelectedIndexChanged(object sender, EventArgs e)

...{
//通过枚举,进行设置数据源
//注: 此数据源和枚举值和页面的selectedvalue值保持一致
this.gvLoginLog.DataSource = user.DataSetLoginLog((WebUtility.SysUser.LoginLogType)Convert.ToInt32(this.rbtnLoginLog.SelectedValue));
this.gvLoginLog.DataBind();
}
protected void btnDel_Click(object sender, EventArgs e)

...{
WebUtility.Define.MessageBox(this.Page,"您确定删除 "+this.rbtnLoginLog.SelectedItem.Text+" 的登录日志吗?");
//根据选择进行删除操作
user.DeleteLoginLog((WebUtility.SysUser.LoginLogType)Convert.ToInt32(this.rbtnLoginLog.SelectedValue));
//设置数据源,进行数据绑定
this.gvLoginLog.DataSource = user.DataSetLoginLog((WebUtility.SysUser.LoginLogType)Convert.ToInt32(this.rbtnLoginLog.SelectedValue));
this.gvLoginLog.DataBind();


}
protected void btnOut_Click(object sender, EventArgs e)

...{
//导出日志到Excel
System.Data.DataTable dt = user.DataSetLoginLog(WebUtility.SysUser.LoginLogType.all).Tables[0];
string DownloadPath = Server.MapPath(".") + "//" + string.Format("登录日志备份{0}.XLS",System.DateTime.Now.ToShortDateString());
//导出
this.myOut.Export(dt, DownloadPath);
//以下代码将 pdf 文件写入客户端浏览器。
Response.ClearContent();
Response.ClearHeaders();
//作为附件下载
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(DownloadPath));
Response.ContentType = "application/ms-excel";
Response.WriteFile(DownloadPath);
Response.Flush();
Response.Close();
//从磁盘删除导出的文件
System.IO.File.Delete(DownloadPath);
}
}
相关的后台类库代码如下:
/**/
/// <summary>
/// 登录日志类型
/// </summary>
public
enum
LoginLogType

...
{today,week,month,year,all}
;

/**/
/// <summary>
/// 登陆日志
/// </summary>
/// <param name="log">登录日志类型</param>
/// <returns>数据集</returns>
public
DataSet DataSetLoginLog(LoginLogType log)

...
{
string strSql = "";
switch ((int)log)

...{
case 0:
strSql = "Select LoginTime,UserName,LoginIP From vw_Login_Users where datename(day,logintime) = datename(day,getdate())";
break;
case 1:
strSql="Select LoginTime,UserName,LoginIP From vw_Login_Users where datename(week,logintime) = datename(week,getdate())";
break;
case 2:
strSql="Select LoginTime,UserName,LoginIP From vw_Login_Users where datename(month,logintime) = datename(month,getdate())";
break;
case 3:
strSql="Select LoginTime,UserName,LoginIP From vw_Login_Users where datename(year,logintime) = datename(year,getdate())";
break;
case 4:
strSql = "Select LoginTime,UserName,LoginIP From vw_Login_Users";
break;
default:
strSql="Select LoginTime,UserName,LoginIP From vw_Login_Users where datename(day,logintime) = datename(day,getdate())";
break;
}
return base.ExecuteSQLDataSet(strSql, "loginlogtest");

}

/**/
/// <summary>
/// 删除登录日志
/// </summary>
/// <param name="logType">登录日志类型</param>
/// <returns>删除影响的行数</returns>
public
int
DeleteLoginLog(LoginLogType logType)

...
{
string strSql = "";
switch ((int)logType)

...{
case 0:
strSql = "Delete From Login_Log where datename(day,logintime) = datename(day,getdate())";
break;
case 1:
strSql = "Delete From Login_Log where datename(week,logintime) = datename(week,getdate())";
break;
case 2:
strSql = "Delete From Login_Log where datename(month,logintime) = datename(month,getdate())";
break;
case 3:
strSql = "Delete From Login_Log where datename(year,logintime) = datename(year,getdate())";
break;
case 4:
strSql = "Delete From Login_Log";
break;
default:
strSql = "Delete From Login_Log where datename(day,logintime) = datename(day,getdate())";
break;
}
return base.ExecuteNonQuery(strSql, null);
}


































































































































































































以上实现方法,主要是利用枚举类型,将枚举类型的值和页面的RadioButtonList控件的Value值,设置同步,这样,当我们选择不同的类型时,通过后台的类库,获取不同的数据集。