请问datagrid即可排序,又可分页如何做?
解决方案 »
- C# asp.net服务器端如何 输出json格式的数据
- 怀疑是GridView的BUG
- 推荐新手学习asp.net的好书?
- 请问验证标准window路径的正则该怎么写?[c:\window\up]这种样式?
- 我对dropdownlist传值有点不明
- 关于aspx文件转静态的问题
- datagrid问题
- asp.net与有密码的access数据库连接问题
- 我这段把数据库中二进制图片显示在浏览器上,可是为什么浏览器出现xml错误呢?
- asp.net(c#)保存问题 急!!!
- ★★在纯文本aspx页面中弹出信息框代码报错,如 CS1010: 常数中有换行符,请高手指点!
- asp.net不能使用TreeView和MainMenu吗?
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;namespace NCMT.SysAdmin
{
/// <summary>
/// SystemLog 的摘要说明。
/// </summary>
public class SystemLog : System.Web.UI.Page
{
private static string sConn;
private string sSql;
private string sSortView = "F_OperateDate DESC";
private SqlConnection conn;
private SqlCommand cmd;
private SqlDataAdapter apt;
protected System.Web.UI.WebControls.DataGrid dgSysLog;
private DataSet ds; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
if(Session["UserID"] == null || Session["UserID"].ToString() == "")
Response.Write("<script language=javascript>window.top.location.href='../login.aspx'</script>"); sConn = ConfigurationSettings.AppSettings["NCMT"]; LoadDataToGrid();
}
} //显示系统日志信息
private void LoadDataToGrid()
{
//sSql = "Select a.*,b.F_UserName From T_SystemLog a,T_AIU b Where a.F_UserID = b.F_UserID";
sSql = "Select ID,F_UserID,(Select F_UserName From T_AIU Where F_UserID = T_SystemLog.F_UserID) As F_UserName,F_OperateDate,F_Action,F_Note From T_SystemLog";
conn = new SqlConnection(sConn);
ds = new DataSet();
apt = new SqlDataAdapter(sSql,conn);
try
{
apt.Fill(ds,"dtSysLog");
DataView dv = ds.Tables["dtSysLog"].DefaultView;
dv.Sort = sSortView; dgSysLog.DataSource = dv;
dgSysLog.DataKeyField = "ID";
dgSysLog.DataBind();
}
catch(Exception ex)
{
Response.Redirect("../SysError.aspx?SysErrorInfo=" + HttpUtility.HtmlEncode(ex.Message.Replace("\n"," ")),false);
}
} //翻页
private void dgSysLog_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgSysLog.CurrentPageIndex = e.NewPageIndex;
LoadDataToGrid();
} //按指定列排序
private void dgSysLog_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
sSortView = e.SortExpression;
LoadDataToGrid();
} //给模板列每个按钮添加客户端 onclick 事件
private void dgSysLog_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.AlternatingItem:
case ListItemType.EditItem:
case ListItemType.Item:
case ListItemType.SelectedItem:
{
LinkButton lbtDelete = (LinkButton)e.Item.FindControl("lbtDel");
lbtDelete.Attributes.Add("onclick","return confirm('您确定要删除该日志吗?');");
break;
}
}
} //删除日志
private void dgSysLog_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "DelSysLog")
{
int intID = Convert.ToInt32(e.Item.Cells[0].Text);
sSql = "Delete From T_SystemLog Where ID = " + intID;
conn = new SqlConnection(sConn);
cmd = new SqlCommand(sSql,conn);
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
try
{
cmd.Transaction = tran;
cmd.ExecuteNonQuery();
//提交事务
tran.Commit(); //如果删除的是当前页的最后一条记录,则网格当前页的索引号自动减一
if(dgSysLog.Items.Count == 1 && dgSysLog.PageCount > 1)
dgSysLog.CurrentPageIndex -= 1; LoadDataToGrid();
}
catch(Exception ex)
{
//回滚事务
tran.Rollback(); Response.Redirect("../SysError.aspx?SysErrorInfo=" + HttpUtility.HtmlEncode(ex.Message.Replace("\n"," ")),false);
}
finally
{
conn.Close();
}
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dgSysLog.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgSysLog_ItemCommand);
this.dgSysLog.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.dgSysLog_PageIndexChanged);
this.dgSysLog.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.dgSysLog_SortCommand);
this.dgSysLog.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.dgSysLog_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>系统日志信息</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language=javascript>
<!--
//禁止后退到本页
JavaScript:window.history.forward(1);
//-->
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<table style="FONT-SIZE: 13px" borderColor="#e9e9e9" cellSpacing="0" cellPadding="2" width="100%"
align="center" border="1">
<tr>
<td style="FONT-SIZE: 18px; COLOR: teal" align="center" bgColor="#f0f0f0"><FONT face="宋体">系统日志</FONT></td>
</tr>
<tr>
<td></td>
</tr>
<TR>
<TD vAlign="top" align="center" width="100%"><FONT face="宋体"><asp:datagrid id="dgSysLog" runat="server" Width="100%" AllowSorting="True" AutoGenerateColumns="False"
PageSize="18" AllowPaging="True">
<AlternatingItemStyle Font-Size="X-Small" BackColor="#F9F9F9"></AlternatingItemStyle>
<ItemStyle Font-Size="X-Small"></ItemStyle>
<HeaderStyle Font-Size="X-Small" Wrap="False" HorizontalAlign="Center" ForeColor="Blue" VerticalAlign="Middle"
BackColor="#F2F2F2"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ID" SortExpression="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="F_UserID" SortExpression="F_UserID" HeaderText="用户ID">
<HeaderStyle Width="10%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="F_UserName" SortExpression="F_UserName" HeaderText="用户姓名">
<HeaderStyle Wrap="False" Width="10%"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="F_OperateDate" SortExpression="F_OperateDate DESC" HeaderText="操作时间">
<HeaderStyle Width="20%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="F_Action" SortExpression="F_Action" HeaderText="用户行为">
<HeaderStyle Width="25%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="F_Note" SortExpression="F_Note" HeaderText="说明">
<HeaderStyle Width="45%"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn>
<HeaderStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:LinkButton id="lbtDel" runat="server" ForeColor="Blue" CommandName="DelSysLog">删除</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="下一页&gt;" Font-Size="X-Small" PrevPageText="&lt上一页;"
HorizontalAlign="Center" Wrap="False"></PagerStyle>
</asp:datagrid></FONT></TD>
</TR>
</table>
</form>
</body>
</HTML>
分页太多了。定义 DataGrid1_PageIndexChange();
http://blog.csdn.net/allenting/archive/2005/01/27/271072.aspxdatagrid自动分页
http://blog.csdn.net/allenting/archive/2005/01/27/271073.aspx
webmatrix 是什么?