修改分页工具栏
This commit is contained in:
1 parent
d370a58554
commit
8c2cd6b83d
3 files changed
+172
-139
No files matched your search
@@ -55,7 +55,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
num_minprice.Value = 0;
|
||||
num_maxprice.Value = 999;
|
||||
cb_Platform.SelectedIndex = 0;
|
||||
//ucSplitPage1.TotalPage
|
||||
ucSplitPage1.TotalCount = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -251,7 +251,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
}
|
||||
var parentCategory = ccb.SelectedItem as PddCatInfo;
|
||||
|
||||
|
||||
|
||||
// 启用并填充当前级别及上级(如果需要)
|
||||
for (int i = currentLevel + 1; i < catBoxList.Count; i++)
|
||||
{
|
||||
@@ -358,6 +358,7 @@ namespace TemuKJD.PDDForms.ProductSelectForms
|
||||
{
|
||||
ret.List.ForEach(a => dataList.Add(a));
|
||||
ucSplitPage1.TotalPage = Math.Max(1, ret.TotalPages);
|
||||
ucSplitPage1.TotalCount = ret.Total;
|
||||
this.pbLoading.Visible = false;
|
||||
// 异步加载商品缩略图(Column1 绑定 ThumbUrl)
|
||||
ShowDgvImg();
|
||||
|
||||
+9
-9
@@ -52,7 +52,7 @@ namespace TemuKJD.UserControls
|
||||
this.btnPrev.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||
this.btnPrev.DisabledBackColor = System.Drawing.Color.Empty;
|
||||
this.btnPrev.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btnPrev.Location = new System.Drawing.Point(259, 0);
|
||||
this.btnPrev.Location = new System.Drawing.Point(235, 0);
|
||||
this.btnPrev.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.btnPrev.Name = "btnPrev";
|
||||
this.btnPrev.Size = new System.Drawing.Size(31, 20);
|
||||
@@ -102,11 +102,11 @@ namespace TemuKJD.UserControls
|
||||
//
|
||||
this.lblPage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
|
||||
this.lblPage.AutoSize = true;
|
||||
this.lblPage.Location = new System.Drawing.Point(293, 0);
|
||||
this.lblPage.Location = new System.Drawing.Point(269, 0);
|
||||
this.lblPage.Name = "lblPage";
|
||||
this.lblPage.Size = new System.Drawing.Size(15, 20);
|
||||
this.lblPage.Size = new System.Drawing.Size(39, 20);
|
||||
this.lblPage.TabIndex = 436;
|
||||
this.lblPage.Text = "1";
|
||||
this.lblPage.Text = "1/1页";
|
||||
this.lblPage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
@@ -216,19 +216,19 @@ namespace TemuKJD.UserControls
|
||||
//
|
||||
this.lblTotal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
|
||||
this.lblTotal.AutoSize = true;
|
||||
this.lblTotal.Location = new System.Drawing.Point(220, 0);
|
||||
this.lblTotal.Location = new System.Drawing.Point(196, 0);
|
||||
this.lblTotal.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.lblTotal.Name = "lblTotal";
|
||||
this.lblTotal.Size = new System.Drawing.Size(39, 20);
|
||||
this.lblTotal.TabIndex = 446;
|
||||
this.lblTotal.Text = "共1页";
|
||||
this.lblTotal.Text = "共1条";
|
||||
this.lblTotal.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// lblPageSize
|
||||
//
|
||||
this.lblPageSize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
|
||||
this.lblPageSize.AutoSize = true;
|
||||
this.lblPageSize.Location = new System.Drawing.Point(177, 0);
|
||||
this.lblPageSize.Location = new System.Drawing.Point(153, 0);
|
||||
this.lblPageSize.Margin = new System.Windows.Forms.Padding(6, 0, 0, 0);
|
||||
this.lblPageSize.Name = "lblPageSize";
|
||||
this.lblPageSize.Size = new System.Drawing.Size(37, 20);
|
||||
@@ -250,7 +250,7 @@ namespace TemuKJD.UserControls
|
||||
"1000",
|
||||
"2000",
|
||||
"5000"});
|
||||
this.cmbPageSize.Location = new System.Drawing.Point(132, 0);
|
||||
this.cmbPageSize.Location = new System.Drawing.Point(108, 0);
|
||||
this.cmbPageSize.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.cmbPageSize.Name = "cmbPageSize";
|
||||
this.cmbPageSize.RightToLeft = System.Windows.Forms.RightToLeft.No;
|
||||
@@ -287,5 +287,5 @@ namespace TemuKJD.UserControls
|
||||
private System.Windows.Forms.Label lblPageSize;
|
||||
public System.Windows.Forms.ComboBox cmbPageSize;
|
||||
public System.Windows.Forms.Label lblTotal;
|
||||
}
|
||||
}
|
||||
}
|
||||
+160
-128
@@ -11,141 +11,173 @@ using System.Windows.Forms;
|
||||
|
||||
namespace TemuKJD.UserControls
|
||||
{
|
||||
public partial class UcSplitPage : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否显示每页条数(启用每页条数功能)
|
||||
/// </summary>
|
||||
[Description("显示每页条数"), Category("UserProperty")]
|
||||
public bool IsShowPageSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.cmbPageSize.Visible;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (cmbPageSize.Visible != value)
|
||||
{
|
||||
this.lblPageSize.Visible = this.cmbPageSize.Visible = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
public partial class UcSplitPage : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否显示每页条数(启用每页条数功能)
|
||||
/// </summary>
|
||||
[Description("显示每页条数"), Category("UserProperty")]
|
||||
public bool IsShowPageSize
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.cmbPageSize.Visible;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (cmbPageSize.Visible != value)
|
||||
{
|
||||
this.lblPageSize.Visible = this.cmbPageSize.Visible = value;
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
long totalCount = 0;
|
||||
/// <summary>
|
||||
/// 总数量
|
||||
/// </summary>
|
||||
[Description("总数量"), Category("UserProperty")]
|
||||
public long TotalCount
|
||||
{
|
||||
get { return totalCount; }
|
||||
set
|
||||
{
|
||||
if (totalCount != value && value >= 0)
|
||||
{
|
||||
totalCount = value;
|
||||
// 根据总数量和每页条数计算总页数
|
||||
int pageSize = this.PageSize;
|
||||
if (pageSize > 0)
|
||||
{
|
||||
this.TotalPage = (int)Math.Ceiling((double)totalCount / pageSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.TotalPage = 1;
|
||||
}
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int totalPage = 1;
|
||||
public int TotalPage
|
||||
{
|
||||
get { return totalPage; }
|
||||
set
|
||||
{
|
||||
if (TotalPage != value && value > 0)
|
||||
{
|
||||
totalPage = value;
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.lblTotal.Text = "共 " + totalPage + " 页";
|
||||
}));
|
||||
}
|
||||
else
|
||||
this.lblTotal.Text = "共 " + totalPage + " 页";
|
||||
}
|
||||
}
|
||||
}
|
||||
int totalPage = 1;
|
||||
public int TotalPage
|
||||
{
|
||||
get { return totalPage; }
|
||||
set
|
||||
{
|
||||
if (totalPage != value && value > 0)
|
||||
{
|
||||
totalPage = value;
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int currentPage = 1;
|
||||
public int CurrentPage
|
||||
{
|
||||
get { return currentPage; }
|
||||
set
|
||||
{
|
||||
if (currentPage != value)
|
||||
{
|
||||
currentPage = value;
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
this.lblPage.Text = "" + currentPage;
|
||||
}));
|
||||
}
|
||||
else
|
||||
this.lblPage.Text = "" + currentPage;
|
||||
}
|
||||
OnPageChange(this);
|
||||
}
|
||||
}
|
||||
int currentPage = 1;
|
||||
public int CurrentPage
|
||||
{
|
||||
get { return currentPage; }
|
||||
set
|
||||
{
|
||||
// 确保当前页不超过总页数
|
||||
int newPage = Math.Max(1, Math.Min(totalPage, value));
|
||||
if (currentPage != newPage)
|
||||
{
|
||||
currentPage = newPage;
|
||||
Refresh();
|
||||
}
|
||||
OnPageChange(this);
|
||||
}
|
||||
}
|
||||
|
||||
[Description("每页条数"), Category("UserProperty")]
|
||||
public int PageSize
|
||||
{
|
||||
get
|
||||
{
|
||||
int pageSize = 50;
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
pageSize = Math.Max(this.cmbPageSize.Text.ParseToInt(), 1);
|
||||
}));
|
||||
}
|
||||
else
|
||||
pageSize = Math.Max(this.cmbPageSize.Text.ParseToInt(), 1);
|
||||
return pageSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
if (this.cmbPageSize.Text.ParseToInt() != value)
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
else
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.cmbPageSize.Text.ParseToInt() != value)
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
else
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
}
|
||||
//OnPageChange(this);
|
||||
}
|
||||
}
|
||||
[Description("每页条数"), Category("UserProperty")]
|
||||
public int PageSize
|
||||
{
|
||||
get
|
||||
{
|
||||
int pageSize = 50;
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
pageSize = Math.Max(this.cmbPageSize.Text.ParseToInt(), 1);
|
||||
}));
|
||||
}
|
||||
else
|
||||
pageSize = Math.Max(this.cmbPageSize.Text.ParseToInt(), 1);
|
||||
return pageSize;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
if (this.cmbPageSize.Text.ParseToInt() != value)
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
else
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.cmbPageSize.Text.ParseToInt() != value)
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
else
|
||||
this.cmbPageSize.Text = value.ParseToString();
|
||||
}
|
||||
// 当每页条数变化时,重新计算总页数
|
||||
if (totalCount > 0)
|
||||
{
|
||||
this.TotalPage = (int)Math.Ceiling((double)totalCount / value);
|
||||
// 确保当前页不超过新的总页数
|
||||
if (this.CurrentPage > this.TotalPage)
|
||||
{
|
||||
this.CurrentPage = this.TotalPage;
|
||||
}
|
||||
}
|
||||
//OnPageChange(this);
|
||||
}
|
||||
}
|
||||
|
||||
public event Action<object> PageChange;
|
||||
protected virtual void OnPageChange(object sender)
|
||||
{
|
||||
this.PageChange?.Invoke(sender);
|
||||
}
|
||||
public event Action<object> PageChange;
|
||||
protected virtual void OnPageChange(object sender)
|
||||
{
|
||||
this.PageChange?.Invoke(sender);
|
||||
}
|
||||
|
||||
public UcSplitPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
public UcSplitPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void pnlJump_Click(object sender, EventArgs e)
|
||||
{
|
||||
int page = this.txtJumpPage.Text.ParseToInt();
|
||||
this.CurrentPage = Math.Max(1, page);
|
||||
|
||||
}
|
||||
private void pnlJump_Click(object sender, EventArgs e)
|
||||
{
|
||||
int page = this.txtJumpPage.Text.ParseToInt();
|
||||
this.CurrentPage = Math.Max(1, page);
|
||||
|
||||
private void btnPrev_Click(object sender, EventArgs e)
|
||||
{
|
||||
int page = this.CurrentPage - 1;
|
||||
this.CurrentPage = Math.Max(1, page);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnNext_Click(object sender, EventArgs e)
|
||||
{
|
||||
int page = this.CurrentPage + 1;
|
||||
this.CurrentPage = Math.Min(totalPage, page);
|
||||
private void btnPrev_Click(object sender, EventArgs e)
|
||||
{
|
||||
int page = this.CurrentPage - 1;
|
||||
this.CurrentPage = Math.Max(1, page);
|
||||
}
|
||||
|
||||
private void btnNext_Click(object sender, EventArgs e)
|
||||
{
|
||||
int page = this.CurrentPage + 1;
|
||||
this.CurrentPage = Math.Min(totalPage, page);
|
||||
}
|
||||
private void Refresh()
|
||||
{
|
||||
Invoke(new Action(() =>
|
||||
{
|
||||
lblPage.Text = $"{currentPage}/{TotalPage}页";
|
||||
lblTotal.Text = $"共{TotalCount}条";
|
||||
}));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user