国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能

DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能

2020-06-21 16:58縹緲的塵埃 ASP.NET教程

這篇文章主要介紹了DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能,本文主要是通過借用BindingNavigator空殼,文中通過實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下

上篇文章給大家介紹DataGridView使用自定義控件實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能,本篇使用BindingNavigator來實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能。其實(shí)也只是借用了一個(gè)BindingNavigator空殼,

實(shí)現(xiàn)原理和代碼與上一篇幾乎一樣,實(shí)現(xiàn)方法如下:

 1、新建一個(gè)WinForm程序,命名為BindingNavigatorMain,并拖入一個(gè)DataGridView控件及一個(gè)BindingNavigator控件。在BindingNavigator右下角彈窗中添加

一個(gè)Button(轉(zhuǎn)到),BindingNavigator的樣式如下:

DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能

    2、BindingNavigatorMain的代碼如下:      

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
private int pageSize; //每頁(yè)顯示記錄數(shù)
  private int pageIndex; //頁(yè)序號(hào)
  private int totalCount; //總記錄數(shù)
  private int pageCount; //總頁(yè)數(shù)
  public BindingNavigatorMain()
  {
   InitializeComponent();
  }
  private void BindingNavigatorMain_Load(object sender, EventArgs e)
  {
   pageSize = 20;
   pageIndex = 0;
   SetPage();
  }
  //設(shè)置頁(yè)
  private void SetPage()
  {
   //總記錄數(shù)
   totalCount = 0;
   BindPage(pageSize, pageIndex + 1, out totalCount);
   //總頁(yè)數(shù)
   if (totalCount % pageSize == 0)
    pageCount = totalCount / pageSize;
   else
    pageCount = totalCount / pageSize + 1;
   //當(dāng)前頁(yè)及總頁(yè)數(shù)
   txtCurrentPage.Text = (pageIndex + 1).ToString();
   lblTotalPage.Text = "共 " + pageCount.ToString() + " 頁(yè)";
   //BindingNavigator數(shù)據(jù)源不進(jìn)行BindingSource賦值,但恢復(fù)控件可用性。
   bindingNavigatorMoveFirstItem.Enabled = true;
   bindingNavigatorMovePreviousItem.Enabled = true;
   txtCurrentPage.Enabled = true;
   lblTotalPage.Enabled = true;
   bindingNavigatorMoveNextItem.Enabled = true;
   bindingNavigatorMoveLastItem.Enabled = true;
  }
  /// <summary>
  /// 綁定頁(yè)
  /// </summary>
  /// <param name="pageSize">每頁(yè)顯示記錄數(shù)</param>
  /// <param name="pageIndex">頁(yè)序號(hào)</param>
  /// <param name="totalCount">總記錄數(shù)</param>
  private void BindPage(int pageSize, int pageIndex, out int totalCount)
  {
   SqlConnection conn = null;
   SqlCommand cmd = null;
   totalCount = 0;
   #region 連接數(shù)據(jù)庫(kù)測(cè)試
   try
   {
    //數(shù)據(jù)庫(kù)連接
    conn = new SqlConnection("server=.;database=DB_TEST;Uid=sa;pwd=********;");
    conn.Open();
    //SqlCommand
    cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandText = "PageTest";
    cmd.CommandType = CommandType.StoredProcedure;
    SqlParameter[] param =
    {
     new SqlParameter("@PageSize",SqlDbType.Int),
     new SqlParameter("@PageIndex",SqlDbType.Int),
     new SqlParameter("@TotalCount",SqlDbType.Int)
    };
    param[0].Value = pageSize;
    param[1].Value = pageIndex;
    param[2].Direction = ParameterDirection.Output;
    cmd.Parameters.AddRange(param);
    //DataTable
    DataTable dt = new DataTable("MF_MO");
    dt.Columns.Add(new DataColumn("MO_NO", typeof(String)));
    dt.Columns.Add(new DataColumn("MRP_NO", typeof(String)));
    dt.Columns.Add(new DataColumn("QTY", typeof(Decimal)));
    dt.Columns.Add(new DataColumn("BIL_NO", typeof(String)));
    #region 方法一:SqlDataReader
    SqlDataReader dr = cmd.ExecuteReader();
    dt.Load(dr, LoadOption.PreserveChanges);
    dr.Close();
    totalCount = (int)param[2].Value;
    dataGridView1.DataSource = dt;
    #endregion
    #region #方法二:SqlDataAdapter
    //SqlDataAdapter da = new SqlDataAdapter();
    //da.SelectCommand = cmd;
    //dt.BeginLoadData();
    //da.Fill(dt);
    //dt.EndLoadData();
    //totalCount = (int)param[2].Value;
    //dataGridView1.DataSource = dt;
    #endregion
   }
   catch (Exception ex)
   {
    MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
   }
   finally
   {
    conn.Close();
    cmd.Dispose();
   }
   #endregion
  }
  /// <summary>
  /// 首頁(yè)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void bindingNavigatorMoveFirstItem_Click(object sender, EventArgs e)
  {
   pageIndex = 0;
   SetPage();
  }
  /// <summary>
  /// 上一頁(yè)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void bindingNavigatorMovePreviousItem_Click(object sender, EventArgs e)
  {
   pageIndex--;
   if (pageIndex < 0)
   {
    pageIndex = 0;
   }
   SetPage();
  }
  /// <summary>
  /// 下一頁(yè)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void bindingNavigatorMoveNextItem_Click(object sender, EventArgs e)
  {
   pageIndex++;
   if (pageIndex > pageCount - 1)
   {
    pageIndex = pageCount - 1;
   }
   SetPage();
  }
  /// <summary>
  /// 末頁(yè)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void bindingNavigatorMoveLastItem_Click(object sender, EventArgs e)
  {
   pageIndex = pageCount - 1;
   SetPage();
  }
  /// <summary>
  /// 只能按0-9、Delete、Enter、Backspace鍵
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void txtCurrentPage_KeyPress(object sender, KeyPressEventArgs e)
  {
   if ((e.KeyChar >= 48 && e.KeyChar <= 57) || e.KeyChar == 8 || e.KeyChar == 13 || e.KeyChar == 127)
   {
    e.Handled = false;
    if (e.KeyChar == 13)
    {
     Go();
    }
   }
   else
   {
    e.Handled = true;
   }
  }
  /// <summary>
  /// 指定頁(yè)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void btnGo_Click(object sender, EventArgs e)
  {
   Go();
  }
  private void Go()
  {
   if (string.IsNullOrEmpty(txtCurrentPage.Text))
   {
    MessageBox.Show("指定頁(yè)不能為空。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    txtCurrentPage.Focus();
    return;
   }
   if (int.Parse(txtCurrentPage.Text) > pageCount)
   {
    MessageBox.Show("指定頁(yè)已超過總頁(yè)數(shù)。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    txtCurrentPage.Focus();
    return;
   }
   pageIndex = int.Parse(txtCurrentPage.Text) - 1;
   SetPage();
  }

    3、SQL Server創(chuàng)建存儲(chǔ)過程PageTest:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE PROCEDURE [dbo].[PageTest]
 @PageSize INT,
 @PageIndex INT,
 @TotalCount INT OUTPUT
AS
BEGIN
 --總記錄數(shù)
 SELECT @TotalCount=COUNT(1) FROM MF_MO
 --記錄返回(使用動(dòng)態(tài)SQL繞開參數(shù)嗅探問題,效率大幅度提升。)
 DECLARE @SQL NVARCHAR(1000)
 SET @SQL=
  'SELECT TOP ('+CONVERT(VARCHAR(32),@PageSize)+') MO_NO,MRP_NO,QTY,BIL_NO '+
  'FROM MF_MO A '+
  'WHERE NOT EXISTS (SELECT 1 FROM (SELECT TOP ('+CONVERT(VARCHAR(32),(@PageIndex-1)*@PageSize)+') MO_NO FROM MF_MO ORDER BY MO_NO) B WHERE A.MO_NO=B.MO_NO) '+
  'ORDER BY MO_NO'
 EXEC (@SQL)
END

    4、執(zhí)行程序:

DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能

 

    好了,分享就到此結(jié)束了,希望對(duì)有此需要的人有一些幫助。

   總結(jié)

以上所述是小編給大家介紹的DataGridView使用BindingNavigator實(shí)現(xiàn)簡(jiǎn)單分頁(yè)功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

原文鏈接:https://www.cnblogs.com/atomy/archive/2019/11/16/11870595.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩欧美国产一区二区三区 | 国产精品一区二区免费 | 精品国产91亚洲一区二区三区www | 欧美日本在线观看 | 欧美激情高清 | 日韩成人在线看 | 自拍偷拍 亚洲 欧美 | 久久亚洲欧美日韩精品专区 | 欧美成人免费在线视频 | 成人福利网 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美日韩成人 | 欧美久久久久久 | 婷婷激情久久 | 91精品国产日韩91久久久久久 | 久久66 | 亚洲天堂中文字幕 | 亚洲人成网站999久久久综合 | 久久久亚洲国产美女国产盗摄 | 欧美精品一二三区 | 国产黄色一级录像 | 国产色播av在线 | 久操免费视频 | 激情五月婷婷 | 日韩免费一级 | 国产午夜精品久久久久久久 | 久久久久久久久久久网站 | 日韩欧美一区二区三区 | 国产精品一区二区三区在线播放 | 亚洲男人一区 | 中文字幕亚洲综合 | 色婷婷精品久久二区二区蜜臂av | 伊人欧美在线 | 成人黄色在线观看 | 综合网av | 精品美女 | 免费在线观看黄色 | 91精品久久久久久久久久 | 久久中文免费 | 精品影视 | 亚洲综合自拍 |