經測試,在14483461 條記錄中查詢第100000 頁,每頁10 條記錄按升序和降序第一次時間均爲0.47 秒,第二次時間均爲0.43 秒,測試語法如下:
exec GetRecordFromPage news,newsid,10,100000
news 爲表名, newsid 爲關鍵字段, 使用時請先對newsid 建立索引。
函數名稱: GetRecordFromPage
函數功能: 獲取指定頁的數據
參數說明: @tblName 包含數據的表名
@fldName 關鍵字段名
@PageSize 每頁記錄數
@PageIndex 要獲取的頁碼
@OrderType 排序類型, 0 - 升序, 1 - 降序
@strWhere 查詢條件(注意: 不要加where)
創建時間: 2004-07-04
修改時間: 2008-02-13
*/
ALTER PROCEDURE [dbo].[GetRecordFromPage]
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 頁尺寸
@PageIndex int = 1, -- 頁碼
@OrderType bit = 0, -- 設置排序類型, 非0 值則降序
@IsCount bit = 0, -- 返回記錄總數, 非0 值則返回
@strWhere varchar(2000) = '' -- 查詢條件(注意: 不要加where)
AS
declare @strSQL varchar(6000) -- 主語句
declare @strTmp varchar(1000) -- 臨時變量
declare @strOrder varchar(500) -- 排序類型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where (' + @strWhere + ')'
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
if @IsCount != 0
set @strSQL = 'select count(' + @fldName + ') as Total from [' + @tblName + ']'
exec (@strSQL)
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CustomControls
...{
[ToolboxData("<{0}:AspNetPager runat='server' PageSize='25' FirstPageText='首頁' PrePageText='上一頁' NextPageText='下一頁' EndPageText='末頁' ButtonText='GO'></{0}:AspNetPager>")]
public class AspNetPager : WebControl, INamingContainer
...{
屬性塊#region 屬性塊
private object baseState = null;
private object buttonStyleState = null;
private object textBoxStyleState = null;
private object labelStyleState = null;
private object linkButtonStyleState = null;
private LinkButton _lnkbtnFrist;
private LinkButton _lnkbtnPre;
private LinkButton _lnkbtnNext;
private LinkButton _lnkbtnLast;
private Label _lblCurrentPage;
private Label _lblRecodeCount;
private Label _lblPageCount;
private Label _lblPageSize;
private TextBox _txtPageIndex;
private Button _btnChangePage;
private static readonly object EventPageChange = new object();
[Category("Pagination"), Description("每頁顯示的紀錄數"),
DefaultValue("25")]
public virtual int PageSize
...{
get
...{
EnsureChildControls();
return _lblPageSize.Text.Trim() != "" ? int.Parse(_lblPageSize.Text.Trim()) : 25;
}
set
...{
EnsureChildControls();
_lblPageSize.Text = value.ToString();
}
}
[Category("Pagination"), Description("總紀錄數"),
DefaultValue("0"), Bindable(true)]
public virtual int RecordCount
...{
get
...{
EnsureChildControls();
return _lblRecodeCount.Text.Trim() != "" ? int.Parse(_lblRecodeCount.Text.Trim()) : 0;
}
set
...{
EnsureChildControls();
if (value > 0)
...{
int recodeCount = value;
_lblPageCount.Text = (value % PageSize == 0 ? value / PageSize : value / PageSize + 1).ToString();//計算總頁數
}
_lblRecodeCount.Text = value.ToString();
}
}
[Category("Pagination"), Description("當前頁碼"),
DefaultValue("1"), Bindable(true)]
public virtual int PageIndex
...{
get
...{
EnsureChildControls();
return _lblCurrentPage.Text.Trim() != "" ? int.Parse(_lblCurrentPage.Text.Trim()) : 1;
}
set
...{
EnsureChildControls();
_lblCurrentPage.Text = value.ToString();
}
}
[Category("Appearance"), Description("設置第一頁的文本"),
DefaultValue("首頁"), Bindable(true)]
public virtual string FirstPageText
...{
get
...{
EnsureChildControls();
return _lnkbtnFrist.Text.Trim() != "" ? _lnkbtnFrist.Text.Trim() : "首頁";
}
set
...{
EnsureChildControls();
_lnkbtnFrist.Text = value;
}
}
[Category("Appearance"), Description("設置上一頁的文本"),
DefaultValue("上一頁"), Bindable(true)]
public virtual string PrePageText
...{
get
...{
EnsureChildControls();
return _lnkbtnPre.Text.Trim() != "" ? _lnkbtnPre.Text.Trim() : "上一頁";
}
set
...{
EnsureChildControls();
_lnkbtnPre.Text = value;
}
}
[Category("Appearance"), Description("設置下一頁的文本"),
DefaultValue("下一頁"), Bindable(true)]
public virtual string NextPageText
...{
get
...{
EnsureChildControls();
return _lnkbtnNext.Text.Trim() != "" ? _lnkbtnNext.Text.Trim() : "下一頁";
}
set
...{
EnsureChildControls();
_lnkbtnNext.Text = value;
}
}
[Category("Appearance"), Description("設置末頁的文本"),
DefaultValue("末頁"), Bindable(true)]
public virtual string EndPageText
...{
get
...{
EnsureChildControls();
return _lnkbtnLast.Text.Trim() != "" ? _lnkbtnLast.Text.Trim() : "末頁";
}
set
...{
EnsureChildControls();
_lnkbtnLast.Text = value;
}
}
[Category("Appearance"), Description("設置跳轉按鈕的文本"),
DefaultValue(":"), Bindable(true)]
public virtual string ButtonText
...{
get
...{
EnsureChildControls();
return _btnChangePage.Text.Trim() != "" ? _btnChangePage.Text.Trim() : "GO";
}
set
...{
EnsureChildControls();
_btnChangePage.Text = value;
}
}
#endregion
分頁事件相關#region 分頁事件相關
public event EventHandler PageChanged
...{
add
...{
Events.AddHandler(EventPageChange, value);
}
remove
...{
Events.RemoveHandler(EventPageChange, value);
}
}
protected void OnPageChanged(EventArgs e)
...{
EventHandler handler = (EventHandler)Events[EventPageChange];
if (handler != null)
...{
handler(this, e);
}
}
#endregion
樣式屬性#region 樣式屬性
private Style _buttonStyle;
private Style _textBoxStyle;
private Style _linkButtonStyle;
[
Category("Styles"),
DefaultValue(null),
DesignerSerializationVisibility(
DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
Description(
"應用於按鈕的樣式")
]
public virtual Style ButtonStyle
...{
get
...{
if (_buttonStyle == null)
...{
_buttonStyle = new Style();
if (IsTrackingViewState)
...{
((IStateManager)_buttonStyle).TrackViewState();
}
}
return _buttonStyle;
}
}
[
Category("Styles"),
DefaultValue(null),
DesignerSerializationVisibility(
DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
Description(
"應用於鏈接按鈕的樣式")
]
public virtual Style LinkButtonStyle
...{
get
...{
if (_linkButtonStyle == null)
...{
_linkButtonStyle = new Style();
if (IsTrackingViewState)
...{
((IStateManager)_linkButtonStyle).TrackViewState();
}
}
return _linkButtonStyle;
}
}
[
Category("Styles"),
DefaultValue(null),
DesignerSerializationVisibility(
DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
Description(
"應用於文本框的樣式")
]
public virtual Style TextBoxStyle
...{
get
...{
if (_textBoxStyle == null)
...{
_textBoxStyle = new Style();
if (IsTrackingViewState)
...{
((IStateManager)_textBoxStyle).TrackViewState();
}
}
return _textBoxStyle;
}
}
private Style _labelStyle;
[
Category("Styles"),
DefaultValue(null),
DesignerSerializationVisibility(
DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
Description(
"應用於標籤的樣式")
]
public virtual Style LabelStyle
...{
get
...{
if (_labelStyle == null)
...{
_labelStyle = new Style();
if (IsTrackingViewState)
...{
((IStateManager)_labelStyle).TrackViewState();
}
}
return _labelStyle;
}
}
#endregion
自定義視圖狀態#region 自定義視圖狀態
protected override void LoadViewState(object savedState)
...{
if (savedState == null)
...{
base.LoadViewState(null);
return;
}
else
...{
Triplet t = savedState as Triplet;
if (t != null)
...{
base.LoadViewState(baseState);
if ((t.Second) != null)
...{
((IStateManager)ButtonStyle).LoadViewState(buttonStyleState);
}
if ((t.Third) != null)
...{
((IStateManager)TextBoxStyle).LoadViewState(textBoxStyleState);
}
if (labelStyleState != null)
...{
((IStateManager)(_labelStyle)).LoadViewState(labelStyleState);
}
if (linkButtonStyleState != null)
...{
((IStateManager)(_linkButtonStyle)).LoadViewState(linkButtonStyleState);
}
}
else
...{
throw new ArgumentException("Invalid view state .");
}
}
}
protected override object SaveViewState()
...{
baseState = base.SaveViewState();
buttonStyleState = null;
textBoxStyleState = null;
labelStyleState = null;
linkButtonStyleState = null;
if (_buttonStyle != null)
...{
buttonStyleState =
((IStateManager)_buttonStyle).SaveViewState();
}
if (_textBoxStyle != null)
...{
textBoxStyleState =
((IStateManager)_textBoxStyle).SaveViewState();
}
if (_labelStyle != null)
...{
labelStyleState = ((IStateManager)_labelStyle).SaveViewState();
}
if (_linkButtonStyle != null)
...{
linkButtonStyleState = ((IStateManager)_linkButtonStyle).SaveViewState();
}
return new Triplet(baseState,
buttonStyleState, textBoxStyleState);
}
protected override void TrackViewState()
...{
base.TrackViewState();
if (_buttonStyle != null)
...{
((IStateManager)_buttonStyle).TrackViewState();
}
if (_textBoxStyle != null)
...{
((IStateManager)_textBoxStyle).TrackViewState();
}
if (_labelStyle != null)
...{
((IStateManager)_labelStyle).TrackViewState();
}
if (_linkButtonStyle != null)
...{
((IStateManager)_linkButtonStyle).TrackViewState();
}
}
#endregion
生成控件#region 生成控件
protected override void CreateChildControls()
...{
this.Controls.Clear();
_btnChangePage = new Button();
_btnChangePage.ID = "btnChangePage";
_btnChangePage.Click += new EventHandler(BtnChangePage_Click);
_lblCurrentPage = new Label();
_lblCurrentPage.ID = "lblCurrentPage";
_lblPageCount = new Label();
_lblPageCount.ID = "lblPageCount";
_lblRecodeCount = new Label();
_lblRecodeCount.ID = "lblRecodeCount";
_lnkbtnFrist = new LinkButton();
_lnkbtnFrist.ID = "lnkbtnFrist";
_lnkbtnFrist.Click += new EventHandler(lnkbtnFrist_Click);
_lnkbtnLast = new LinkButton();
_lnkbtnLast.ID = "lnkbtnLast";
_lnkbtnLast.Click += new EventHandler(lnkbtnLast_Click);
_lnkbtnNext = new LinkButton();
_lnkbtnNext.ID = "lnkbtnNext";
_lnkbtnNext.Click += new EventHandler(lnkbtnNext_Click);
_lnkbtnPre = new LinkButton();
_lnkbtnPre.ID = "lnkbtnPre";
_lnkbtnPre.Click += new EventHandler(lnkbtnPre_Click);
_txtPageIndex = new TextBox();
_txtPageIndex.ID = "txtPageIndex";
_lblPageSize = new Label();
_lblPageSize.ID = "lblPageSize";
this.Controls.Add(_btnChangePage);
this.Controls.Add(_lblCurrentPage);
this.Controls.Add(_lblPageCount);
this.Controls.Add(_lblRecodeCount);
this.Controls.Add(_lnkbtnFrist);
this.Controls.Add(_lnkbtnLast);
this.Controls.Add(_lnkbtnNext);
this.Controls.Add(_lnkbtnPre);
this.Controls.Add(_txtPageIndex);
base.CreateChildControls();
}
#endregion
按鈕點擊事件#region 按鈕點擊事件
翻頁相關的事件#region 翻頁相關的事件
/**//// <summary>
/// 處理翻頁事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lnkbtnFrist_Click(object sender, EventArgs e) //第一頁
...{
_lblCurrentPage.Text = "1";
OnPageChanged(EventArgs.Empty);
}
protected void lnkbtnPre_Click(object sender, EventArgs e) //上一頁
...{
int pageIndex = int.Parse(_lblCurrentPage.Text);
if (pageIndex > 0)
...{
pageIndex--;
_lblCurrentPage.Text = pageIndex.ToString();
OnPageChanged(EventArgs.Empty);
}
}
protected void lnkbtnNext_Click(object sender, EventArgs e)//下一頁
...{
int pageIndex = int.Parse(_lblCurrentPage.Text);
int pageCount = int.Parse(_lblPageCount.Text);
if (pageIndex < pageCount)
...{
pageIndex++;
_lblCurrentPage.Text = pageIndex.ToString();
}
OnPageChanged(EventArgs.Empty);
}
protected void lnkbtnLast_Click(object sender, EventArgs e)//末頁
...{
_lblCurrentPage.Text = _lblPageCount.Text;
OnPageChanged(EventArgs.Empty);
}
#endregion
protected void BtnChangePage_Click(object sender, EventArgs e)//跳轉到指定頁
...{
int pageIndex=0;
try
...{
pageIndex = int.Parse(_txtPageIndex.Text);
}
catch
...{
System.Web.HttpContext.Current.Response.Write("<Script>alert('請輸入正確的頁數!');</script>");
return;
}
int pageCount = int.Parse(_lblPageCount.Text);
if (pageIndex == 0)//如果爲0,則提示錯誤
...{
System.Web.HttpContext.Current.Response.Write("<Script>alert('請輸入正確的頁數!');</script>");
return;
}
if (pageIndex > pageCount)//如果大於總頁數則提示錯誤
...{
System.Web.HttpContext.Current.Response.Write("<Script>alert('請輸入正確的頁數!');</script>");
return;
}
_lblCurrentPage.Text = pageIndex.ToString();
OnPageChanged(EventArgs.Empty);
}
#endregion
重寫TagKey#region 重寫TagKey
protected override HtmlTextWriterTag TagKey
...{
get
...{
return HtmlTextWriterTag.Table;
}
}
#endregion
繪製控件#region 繪製控件
protected override void RenderContents(HtmlTextWriter writer)
...{
if (ButtonStyle != null)
...{
_btnChangePage.ApplyStyle(ButtonStyle);
}
if (TextBoxStyle != null)
...{
_txtPageIndex.ApplyStyle(TextBoxStyle);
}
if (LabelStyle != null)
...{
_lblCurrentPage.ApplyStyle(LabelStyle);
_lblPageCount.ApplyStyle(LabelStyle);
_lblRecodeCount.ApplyStyle(LabelStyle);
_lblPageSize.ApplyStyle(LabelStyle);
}
AddAttributesToRender(writer);
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.AddAttribute(HtmlTextWriterAttribute.Align, "right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("當前第");
if (_lblCurrentPage != null)
_lblCurrentPage.RenderControl(writer);
writer.Write("頁,每頁");
if (_lblPageSize != null)
...{
_lblPageSize.RenderControl(writer);
}
writer.Write("條紀錄,總共");
if (_lblRecodeCount != null)
_lblRecodeCount.RenderControl(writer);
writer.Write("條紀錄,共");
if (_lblPageCount != null)
_lblPageCount.RenderControl(writer);
writer.Write("頁 [ ");
if (_lnkbtnFrist != null)
...{
if (PageIndex == 1) //如果是第一頁,則第一頁灰顯,作用是避免不必要的點擊造成沒必要的數據傳輸
...{
_lnkbtnFrist.Enabled = false;
}
else
...{
_lnkbtnFrist.Enabled = true;
}
_lnkbtnFrist.RenderControl(writer);
}
writer.Write(" ");
if (_lnkbtnPre != null)
...{
if (PageIndex > 1) //如果當前頁大於1,則上一頁顯示,否則灰顯
...{
_lnkbtnPre.Enabled = true;
}
else
...{
_lnkbtnPre.Enabled = false;
}
_lnkbtnPre.RenderControl(writer);
}
writer.Write(" ");
if (_lnkbtnNext != null)
...{
if (_lblPageCount == null)
...{
_lnkbtnNext.Enabled = false;
}
else
...{
int pageCount = int.Parse(_lblPageCount.Text); //獲取總頁數
if (PageIndex < pageCount)//如果當前頁小於總頁數,則下一頁顯示,否則灰顯
...{
_lnkbtnNext.Enabled = true;
}
else
...{
_lnkbtnNext.Enabled = false;
}
}
_lnkbtnNext.RenderControl(writer);
}
writer.Write(" ");
if (_lnkbtnLast != null)
...{
if (_lblPageCount == null)
...{
_lnkbtnLast.Enabled = false;
}
else
...{
int pageCount = int.Parse(_lblPageCount.Text); //獲取總頁數
if (PageIndex == pageCount)//如果當前頁爲最後一頁,則末頁灰顯
...{
_lnkbtnLast.Enabled = false;
}
else
...{
_lnkbtnLast.Enabled = true;
}
}
_lnkbtnLast.RenderControl(writer);
}
writer.Write(" ]跳轉到第");
if (_txtPageIndex != null)
_txtPageIndex.RenderControl(writer);
writer.Write("頁");
if (_btnChangePage != null)
_btnChangePage.RenderControl(writer);
writer.RenderEndTag();
writer.RenderEndTag();
//base.RenderContents(writer);
}
#endregion
}
}
2.3千萬級數據分頁實現
2.3.1 簡介
這次分頁我是用Gridview來實現的,測試時間沒算,但基本上從10000011紀錄中一次查詢25條紀錄,在10萬頁以內,時間花費 在1秒以內。使用其他控件比如DataGrid,DataList或者DataReapter應該花費的時間更短。
2.3.2 適用對象
服務器端控件Gridview,DataGrid,DataList,DataReapter等數據綁定控件
2.3.3 分頁實現
分頁效果圖如下:
前臺代碼如下:
後臺代碼如下:
<%@ Register Assembly="CustomControls" Namespace="CustomControls" TagPrefix="cc2" %>
<%@ Register Assembly="MyLabel" Namespace="MyLabel" TagPrefix="cc1" %>
<!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>
<link type="text/css" rel="stylesheet" href="css/comm.css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="false" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" PagerSettings-Visible="false"
Width="50%" height="35" OnRowCommand="GridView1_RowCommand" DataKeyNames="I_BriefnessID">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle ForeColor="White" VerticalAlign="Top" BackColor="Transparent" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="序號">
<ItemTemplate>
<%# Container.DataItemIndex+1 %>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="I_BriefnessID" HeaderText="ID" />
<asp:BoundField DataField="I_KMID" HeaderText="科目" />
<asp:BoundField DataField="C_Recno" HeaderText="試題號" />
<asp:BoundField DataField="M_Title" HeaderText="題面" />
<asp:BoundField DataField="C_Answer" HeaderText="答案" />
<asp:TemplateField HeaderText="刪除">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" OnClientClick="return confirm('確定要刪除?');" runat="server"
CausesValidation="False" CommandName="DeleteData" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"I_BriefnessID").ToString()%>' Text="刪除" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div>
<cc2:AspNetPager ID="AspNetPager1" runat="server" ButtonText="GO" EndPageText="末頁"
FirstPageText="首頁" NextPageText="下一頁" PageSize="15" PrePageText="上一頁" OnPageChanged="Page_Changed" Width="50%">
<ButtonStyle CssClass="btn1_mouseout" Width="30px" />
<TextBoxStyle Width="30px" CssClass="blue_rounded"/>
<LabelStyle ForeColor="red" Font-Bold="true" />
</cc2:AspNetPager>
</div>
</form>
</body>
</html>
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 Demo : System.Web.UI.Page
...{
protected void Page_Load(object sender, EventArgs e)
...{
if (!Page.IsPostBack)
...{
TestDataCount();
BindPaperDefineProgramme(1);
}
}
綁定試卷定義方案列表#region 綁定試卷定義方案列表
/**//// <summary>
/// 統計該表的所有紀錄
/// </summary>
private void TestDataCount()
...{
DataTable dt = null;
try
...{
//public static DataTable GetTestData(string tableName, int pageSize, int pageIndex,string columnName,bool isCount)
//第一個參數爲要查詢的表,第二個參數爲每頁的紀錄數,第三個爲頁碼,這裏初始化爲第1頁,第四個參數爲表的字段
//,第五個參數爲是否返回紀錄總數,這裏爲true表示返回紀錄總數
dt = ExecProc.GetTestData("tbl_Briefness", AspNetPager1.PageSize, 1, "I_BriefnessID", true);
}
catch (Exception ex)
...{
Response.Write(ex.Message);
return;
}
if (dt.Rows.Count != 0)
...{
AspNetPager1.RecordCount = int.Parse(dt.Rows[0]["Total"].ToString());
AspNetPager1.PageIndex = 1;//初始化當前頁爲第一頁
}
}
#endregion
protected void Page_Changed(object sender, EventArgs e)
...{
BindPaperDefineProgramme(AspNetPager1.PageIndex);
}
刪除紀錄#region 刪除紀錄
/**//// <summary>
/// 刪除紀錄
/// </summary>
/// <param name="sender"></param>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
...{
if (e.CommandName == "Delete")
...{
string pagerID = GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Value.ToString();
int flag = 0;
try
...{
flag = ExecProc.DeleteData(int.Parse(pagerID));
}
catch (Exception ex)
...{
}
if (flag != 0)
...{
Response.Write("<script>alert('刪除成功!');</script>");
TestDataCount();
BindPaperDefineProgramme(1);
}
else
...{
Response.Write("<script>alert('刪除失敗!');</script>");
BindPaperDefineProgramme(AspNetPager1.PageIndex);
}
}
}
#endregion
綁定試卷定義方案列表#region 綁定試卷定義方案列表
/**//// <summary>
/// 根據當前頁碼查詢需要的數據
/// </summary>
/// <param name="pageIndex">頁碼</param>
private void BindPaperDefineProgramme(int pageIndex)
...{
DataTable dt = null;
try
...{
dt = ExecProc.GetTestData("tbl_Briefness", AspNetPager1.PageSize, pageIndex, "I_BriefnessID", false); //根據頁碼查詢需要的紀錄
}
catch (Exception ex)
...{
Response.Write(ex.Message);
return;
}
if (dt.Rows.Count == 0)
...{
GridView1.Visible = false;
}
else
...{
GridView1.Visible = true;
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
#endregion
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2244627