关于datagrid分页的问题 就是我用的是datagrid自带的分页,能不能在系统生成分页的那一栏添加一个自己写跳转的功能??谢谢??如何加进去~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType==ListItemType.Pager) { TextBox txt=new TextBox(); txt.Text="aaa"; txt.ID="txt1"; e.Item.Controls.Add(txt); } }试试行不行 一楼的方法可以在Pager里添加自己的控件,实现额外的分页功能,难倒不难,就是每个DataGrid都要如此处理非常啰嗦,所以推荐使用别人写好的翻页控件:http://community.csdn.net/Expert/topic/5084/5084788.xml?temp=.9058496 也可以自己写控件,例子:using System;using System.Collections;using System.Collections.Specialized;using System.Text;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Xml;using System.Data;using System.ComponentModel;namespace WebGridPager{ /// <summary> /// 类 名 称:GridPager /// 内容摘要:该代码文件的主要功能是翻页控件,处理DataGrid的翻页。 /// </summary> [ValidationPropertyAttribute("Text")] public class GridPager : Control, INamingContainer, IPostBackDataHandler, IPostBackEventHandler { #region 变量 protected TextBox txtPageIndex; protected Label lblRowsCount,lblPageSize,lblPageCount; protected Button btnGO; protected DataGrid objectGrid; protected Button btnFirst,btnLast,btnPre,btnNext; protected System.Web.UI.HtmlControls.HtmlTable Table1; //定义事件的委托 public delegate void ButtonClickEventHandler(object sender,System.EventArgs e); //定义事件 public event ButtonClickEventHandler PageIndexChanged; #endregion #region 属性 private string ViewStateText { get { object local = base.ViewState["Text"]; return (local != null) ? (String)local : ""; } } public string Text { get { return ViewStateText; } set { base.ViewState["Text"] = value; } } public DataGrid ObjectGrid { set { objectGrid = value; objectGrid.AllowPaging = true; objectGrid.PagerStyle.Visible = false; objectGrid.DataBinding+=new EventHandler(dg_DataBinding); } } #endregion #region 方法区 protected override void OnInit(EventArgs e) { base.OnInit (e); Table1 = new HtmlTable(); Table1.Border = 0; Table1.CellPadding = 0; Table1.CellSpacing = 0; HtmlTableRow tableRow = new HtmlTableRow(); HtmlTableCell tableCell = new HtmlTableCell(); tableCell.NoWrap = true; //tableCell.VAlign = "bottom"; tableRow.Cells.Add(tableCell); Table1.Rows.Add(tableRow); base.Controls.Add(Table1); Label lblTitle = new Label(); lblTitle.Text = "共有"; tableCell.Controls.Add(lblTitle); lblRowsCount = new Label(); lblRowsCount.Text = "0"; lblRowsCount.ForeColor = System.Drawing.Color.Blue; tableCell.Controls.Add(lblRowsCount); lblTitle = new Label(); lblTitle.Text = "项 每页"; tableCell.Controls.Add(lblTitle); lblPageSize = new Label(); lblPageSize.Text = "0"; lblPageSize.ForeColor = System.Drawing.Color.Blue; tableCell.Controls.Add(lblPageSize); lblTitle = new Label(); lblTitle.Text = "项 共"; tableCell.Controls.Add(lblTitle); lblPageCount = new Label(); lblPageCount.Text = "0"; lblPageCount.ForeColor = System.Drawing.Color.Blue; tableCell.Controls.Add(lblPageCount); lblTitle = new Label(); lblTitle.Text = "页 "; tableCell.Controls.Add(lblTitle); btnFirst = new Button(); btnFirst.Text = "9"; btnFirst.Height=19; btnFirst.ForeColor = System.Drawing.Color.Blue; btnFirst.Font.Name = "webdings"; btnFirst.Style.Add("BACKGROUND-COLOR","transparent"); btnFirst.Style.Add("BORDER-TOP-STYLE","none"); btnFirst.Style.Add("BORDER-BOTTOM-STYLE","none"); btnFirst.Style.Add("BORDER-LEFT-STYLE","none"); btnFirst.Style.Add("BORDER-RIGHT-STYLE","none"); btnFirst.Style.Add("CURSOR","hand"); btnFirst.Style.Add("FONT-SIZE","12pt"); btnFirst.Attributes.Add("title","首页"); btnFirst.Click+=new EventHandler(btnFirst_Click); tableCell.Controls.Add(btnFirst); btnPre = new Button(); btnPre.Text = "7"; btnPre.Height=19; btnPre.ForeColor = System.Drawing.Color.Blue; btnPre.Font.Name = "webdings"; btnPre.Style.Add("BACKGROUND-COLOR","transparent"); btnPre.Style.Add("BORDER-TOP-STYLE","none"); btnPre.Style.Add("BORDER-BOTTOM-STYLE","none"); btnPre.Style.Add("BORDER-LEFT-STYLE","none"); btnPre.Style.Add("BORDER-RIGHT-STYLE","none"); btnPre.Style.Add("CURSOR","hand"); btnPre.Style.Add("FONT-SIZE","12pt"); btnPre.Attributes.Add("title","上一页"); btnPre.Click+=new EventHandler(btnPre_Click); tableCell.Controls.Add(btnPre); btnNext = new Button(); btnNext.Text = "8"; btnNext.Height=19; btnNext.ForeColor = System.Drawing.Color.Blue; btnNext.Font.Name = "webdings"; btnNext.Style.Add("BACKGROUND-COLOR","transparent"); btnNext.Style.Add("BORDER-TOP-STYLE","none"); btnNext.Style.Add("BORDER-BOTTOM-STYLE","none"); btnNext.Style.Add("BORDER-LEFT-STYLE","none"); btnNext.Style.Add("BORDER-RIGHT-STYLE","none"); btnNext.Style.Add("CURSOR","hand"); btnNext.Style.Add("FONT-SIZE","12pt"); btnNext.Attributes.Add("title","下一页"); btnNext.Click+=new EventHandler(btnNext_Click); tableCell.Controls.Add(btnNext); btnLast = new Button(); btnLast.Text = ": "; btnLast.Height=19; btnLast.ForeColor = System.Drawing.Color.Blue; btnLast.Font.Name = "webdings"; btnLast.Style.Add("BACKGROUND-COLOR","transparent"); btnLast.Style.Add("BORDER-TOP-STYLE","none"); btnLast.Style.Add("BORDER-BOTTOM-STYLE","none"); btnLast.Style.Add("BORDER-LEFT-STYLE","none"); btnLast.Style.Add("BORDER-RIGHT-STYLE","none"); btnLast.Style.Add("CURSOR","hand"); btnLast.Style.Add("FONT-SIZE","12pt"); btnLast.Attributes.Add("title","末页"); btnLast.Click+=new EventHandler(btnLast_Click); tableCell.Controls.Add(btnLast); lblTitle = new Label(); lblTitle.Text = " 跳到第"; tableCell.Controls.Add(lblTitle); txtPageIndex = new TextBox(); txtPageIndex.Width = 40; txtPageIndex.MaxLength = 5; txtPageIndex.Style.Add("TEXT-ALIGN","center"); txtPageIndex.Attributes.Add("onkeydown","if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105) || event.keyCode == 8 || event.keyCode == 9))event.returnValue=false;"); txtPageIndex.Style.Add("IME-MODE","disabled"); tableCell.Controls.Add(txtPageIndex); lblTitle = new Label(); lblTitle.Text = "页"; tableCell.Controls.Add(lblTitle); btnGO = new Button(); btnGO.Text = "GO"; btnGO.Style.Add("CURSOR","hand"); btnGO.Click+=new EventHandler(btnGO_Click); tableCell.Controls.Add(btnGO); if(!Page.IsPostBack) Table1.Style.Add("display","none"); } public virtual void RaisePostBackEvent(string eventArgument) { } public virtual void RaisePostDataChangedEvent() { } public virtual bool LoadPostData(string postDataKey, NameValueCollection values) { bool flag; string str1 = ViewStateText; string str2 = values[base.ID]; if (!str1.Equals(str2)) { Text = str2; flag = true; } else { flag = false; } return flag; } private void dg_DataBinding(object sender, EventArgs e) { if(objectGrid.DataSource != null) { DataView dv = null; if(objectGrid.DataSource.GetType().ToString() == "System.Data.DataView") dv = (DataView)objectGrid.DataSource; else if(objectGrid.DataSource.GetType().ToString() == "System.Data.DataTable") dv = ((DataTable)objectGrid.DataSource).DefaultView; if(Table1 != null) { Table1.Style.Add("display","inline"); lblRowsCount.Text = dv.Count.ToString(); lblPageSize.Text = objectGrid.PageSize.ToString(); int PageCount = (int)Math.Ceiling((double)dv.Count/objectGrid.PageSize); if(objectGrid.CurrentPageIndex >= PageCount) objectGrid.CurrentPageIndex = Math.Max(0,PageCount -1); lblPageCount.Text = PageCount.ToString(); txtPageIndex.Text = (objectGrid.CurrentPageIndex+1).ToString(); btnFirst.Enabled = true; btnPre.Enabled = true; btnNext.Enabled = true; btnLast.Enabled = true; if(PageCount<2) { btnNext.Enabled = false; btnLast.Enabled = false; } if(objectGrid.CurrentPageIndex == 0) { btnFirst.Enabled = false; btnPre.Enabled = false; } if(objectGrid.CurrentPageIndex == PageCount - 1) { btnNext.Enabled = false; btnLast.Enabled = false; } if(dv.Count<1) { txtPageIndex.Text = "0"; txtPageIndex.Enabled = false; btnGO.Enabled = false; } else { txtPageIndex.Enabled = true; btnGO.Enabled = true; } } } else { if(Table1 != null) Table1.Style.Add("display","none"); } } private void btnFirst_Click(object sender, EventArgs e) { if(objectGrid != null) { objectGrid.CurrentPageIndex = 0; //如果有对象登记事件,通过委托的所有对象 if (PageIndexChanged != null) { PageIndexChanged(sender,e); } } } private void btnPre_Click(object sender, EventArgs e) { if(objectGrid != null) { objectGrid.CurrentPageIndex = Math.Max(0,objectGrid.CurrentPageIndex-1); //如果有对象登记事件,通过委托的所有对象 if (PageIndexChanged != null) { PageIndexChanged(sender,e); } } } private void btnNext_Click(object sender, EventArgs e) { if(objectGrid != null) { objectGrid.CurrentPageIndex = Math.Min(objectGrid.CurrentPageIndex+1,objectGrid.PageCount-1); //如果有对象登记事件,通过委托的所有对象 if (PageIndexChanged != null) { PageIndexChanged(sender,e); } } } private void btnLast_Click(object sender, EventArgs e) { if(objectGrid != null) { objectGrid.CurrentPageIndex = objectGrid.PageCount - 1; //如果有对象登记事件,通过委托的所有对象 if (PageIndexChanged != null) { PageIndexChanged(sender,e); } } } private void btnGO_Click(object sender, EventArgs e) { if(objectGrid != null) { int newIndex = 0; try { newIndex = Convert.ToInt32(txtPageIndex.Text.Trim()); newIndex = newIndex - 1; } catch{} objectGrid.CurrentPageIndex = Math.Min(Math.Max(0,newIndex),objectGrid.PageCount - 1); //如果有对象登记事件,通过委托的所有对象 if (PageIndexChanged != null) { PageIndexChanged(sender,e); } } } #endregion }} 我想问一下email发邮件的问题 购物车中用gridview,如何修改数量 发一个可以自动分页的 DataList 如何上传大容量的文件 找交流学习经验的网友 如何你们看到一些不认识的标示符或者知道的属性你们一般都是怎么去找他的使用方法和意思 Asp.Net插入数据失败~~ 错在哪里? 求水晶报表9.2,要求可以和net2003一起用的. 我为什么不能屏蔽命令控件? 导航条中如何加入数据? C# 如何将注释显示成多行?? XP系统,VS.NET 2003 新建ASP.net web应用程序时报错,请指点~~
{
if(e.Item.ItemType==ListItemType.Pager)
{
TextBox txt=new TextBox();
txt.Text="aaa";
txt.ID="txt1";
e.Item.Controls.Add(txt);
}
}
试试行不行
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Data;
using System.ComponentModel;namespace WebGridPager
{
/// <summary>
/// 类 名 称:GridPager
/// 内容摘要:该代码文件的主要功能是翻页控件,处理DataGrid的翻页。
/// </summary>
[ValidationPropertyAttribute("Text")]
public class GridPager : Control, INamingContainer, IPostBackDataHandler, IPostBackEventHandler
{
#region 变量
protected TextBox txtPageIndex;
protected Label lblRowsCount,lblPageSize,lblPageCount;
protected Button btnGO;
protected DataGrid objectGrid;
protected Button btnFirst,btnLast,btnPre,btnNext;
protected System.Web.UI.HtmlControls.HtmlTable Table1; //定义事件的委托
public delegate void ButtonClickEventHandler(object sender,System.EventArgs e); //定义事件
public event ButtonClickEventHandler PageIndexChanged;
#endregion #region 属性
private string ViewStateText
{
get
{
object local = base.ViewState["Text"];
return (local != null) ? (String)local : "";
}
} public string Text
{
get
{
return ViewStateText;
}
set
{
base.ViewState["Text"] = value;
}
} public DataGrid ObjectGrid
{
set
{
objectGrid = value;
objectGrid.AllowPaging = true;
objectGrid.PagerStyle.Visible = false;
objectGrid.DataBinding+=new EventHandler(dg_DataBinding);
}
}
#endregion
protected override void OnInit(EventArgs e)
{
base.OnInit (e); Table1 = new HtmlTable();
Table1.Border = 0;
Table1.CellPadding = 0;
Table1.CellSpacing = 0;
HtmlTableRow tableRow = new HtmlTableRow();
HtmlTableCell tableCell = new HtmlTableCell();
tableCell.NoWrap = true;
//tableCell.VAlign = "bottom";
tableRow.Cells.Add(tableCell);
Table1.Rows.Add(tableRow);
base.Controls.Add(Table1); Label lblTitle = new Label();
lblTitle.Text = "共有";
tableCell.Controls.Add(lblTitle); lblRowsCount = new Label();
lblRowsCount.Text = "0";
lblRowsCount.ForeColor = System.Drawing.Color.Blue;
tableCell.Controls.Add(lblRowsCount); lblTitle = new Label();
lblTitle.Text = "项 每页";
tableCell.Controls.Add(lblTitle); lblPageSize = new Label();
lblPageSize.Text = "0";
lblPageSize.ForeColor = System.Drawing.Color.Blue;
tableCell.Controls.Add(lblPageSize); lblTitle = new Label();
lblTitle.Text = "项 共";
tableCell.Controls.Add(lblTitle); lblPageCount = new Label();
lblPageCount.Text = "0";
lblPageCount.ForeColor = System.Drawing.Color.Blue;
tableCell.Controls.Add(lblPageCount); lblTitle = new Label();
lblTitle.Text = "页 ";
tableCell.Controls.Add(lblTitle); btnFirst = new Button();
btnFirst.Text = "9";
btnFirst.Height=19;
btnFirst.ForeColor = System.Drawing.Color.Blue;
btnFirst.Font.Name = "webdings";
btnFirst.Style.Add("BACKGROUND-COLOR","transparent");
btnFirst.Style.Add("BORDER-TOP-STYLE","none");
btnFirst.Style.Add("BORDER-BOTTOM-STYLE","none");
btnFirst.Style.Add("BORDER-LEFT-STYLE","none");
btnFirst.Style.Add("BORDER-RIGHT-STYLE","none");
btnFirst.Style.Add("CURSOR","hand");
btnFirst.Style.Add("FONT-SIZE","12pt");
btnFirst.Attributes.Add("title","首页");
btnFirst.Click+=new EventHandler(btnFirst_Click);
tableCell.Controls.Add(btnFirst); btnPre = new Button();
btnPre.Text = "7";
btnPre.Height=19;
btnPre.ForeColor = System.Drawing.Color.Blue;
btnPre.Font.Name = "webdings";
btnPre.Style.Add("BACKGROUND-COLOR","transparent");
btnPre.Style.Add("BORDER-TOP-STYLE","none");
btnPre.Style.Add("BORDER-BOTTOM-STYLE","none");
btnPre.Style.Add("BORDER-LEFT-STYLE","none");
btnPre.Style.Add("BORDER-RIGHT-STYLE","none");
btnPre.Style.Add("CURSOR","hand");
btnPre.Style.Add("FONT-SIZE","12pt");
btnPre.Attributes.Add("title","上一页");
btnPre.Click+=new EventHandler(btnPre_Click);
tableCell.Controls.Add(btnPre); btnNext = new Button();
btnNext.Text = "8";
btnNext.Height=19;
btnNext.ForeColor = System.Drawing.Color.Blue;
btnNext.Font.Name = "webdings";
btnNext.Style.Add("BACKGROUND-COLOR","transparent");
btnNext.Style.Add("BORDER-TOP-STYLE","none");
btnNext.Style.Add("BORDER-BOTTOM-STYLE","none");
btnNext.Style.Add("BORDER-LEFT-STYLE","none");
btnNext.Style.Add("BORDER-RIGHT-STYLE","none");
btnNext.Style.Add("CURSOR","hand");
btnNext.Style.Add("FONT-SIZE","12pt");
btnNext.Attributes.Add("title","下一页");
btnNext.Click+=new EventHandler(btnNext_Click);
tableCell.Controls.Add(btnNext); btnLast = new Button();
btnLast.Text = ": ";
btnLast.Height=19;
btnLast.ForeColor = System.Drawing.Color.Blue;
btnLast.Font.Name = "webdings";
btnLast.Style.Add("BACKGROUND-COLOR","transparent");
btnLast.Style.Add("BORDER-TOP-STYLE","none");
btnLast.Style.Add("BORDER-BOTTOM-STYLE","none");
btnLast.Style.Add("BORDER-LEFT-STYLE","none");
btnLast.Style.Add("BORDER-RIGHT-STYLE","none");
btnLast.Style.Add("CURSOR","hand");
btnLast.Style.Add("FONT-SIZE","12pt");
btnLast.Attributes.Add("title","末页");
btnLast.Click+=new EventHandler(btnLast_Click);
tableCell.Controls.Add(btnLast); lblTitle = new Label();
lblTitle.Text = " 跳到第";
tableCell.Controls.Add(lblTitle); txtPageIndex = new TextBox();
txtPageIndex.Width = 40;
txtPageIndex.MaxLength = 5;
txtPageIndex.Style.Add("TEXT-ALIGN","center");
txtPageIndex.Attributes.Add("onkeydown","if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105) || event.keyCode == 8 || event.keyCode == 9))event.returnValue=false;");
txtPageIndex.Style.Add("IME-MODE","disabled");
tableCell.Controls.Add(txtPageIndex); lblTitle = new Label();
lblTitle.Text = "页";
tableCell.Controls.Add(lblTitle); btnGO = new Button();
btnGO.Text = "GO";
btnGO.Style.Add("CURSOR","hand");
btnGO.Click+=new EventHandler(btnGO_Click);
tableCell.Controls.Add(btnGO); if(!Page.IsPostBack)
Table1.Style.Add("display","none");
}
public virtual void RaisePostBackEvent(string eventArgument)
{
} public virtual void RaisePostDataChangedEvent()
{
} public virtual bool LoadPostData(string postDataKey, NameValueCollection values)
{
bool flag; string str1 = ViewStateText;
string str2 = values[base.ID];
if (!str1.Equals(str2))
{
Text = str2;
flag = true;
}
else
{
flag = false;
}
return flag;
} private void dg_DataBinding(object sender, EventArgs e)
{
if(objectGrid.DataSource != null)
{
DataView dv = null;
if(objectGrid.DataSource.GetType().ToString() == "System.Data.DataView")
dv = (DataView)objectGrid.DataSource;
else if(objectGrid.DataSource.GetType().ToString() == "System.Data.DataTable")
dv = ((DataTable)objectGrid.DataSource).DefaultView;
if(Table1 != null)
{
Table1.Style.Add("display","inline");
lblRowsCount.Text = dv.Count.ToString();
lblPageSize.Text = objectGrid.PageSize.ToString(); int PageCount = (int)Math.Ceiling((double)dv.Count/objectGrid.PageSize);
if(objectGrid.CurrentPageIndex >= PageCount)
objectGrid.CurrentPageIndex = Math.Max(0,PageCount -1); lblPageCount.Text = PageCount.ToString();
txtPageIndex.Text = (objectGrid.CurrentPageIndex+1).ToString();
btnFirst.Enabled = true;
btnPre.Enabled = true;
btnNext.Enabled = true;
btnLast.Enabled = true; if(PageCount<2)
{
btnNext.Enabled = false;
btnLast.Enabled = false;
} if(objectGrid.CurrentPageIndex == 0)
{
btnFirst.Enabled = false;
btnPre.Enabled = false;
} if(objectGrid.CurrentPageIndex == PageCount - 1)
{
btnNext.Enabled = false;
btnLast.Enabled = false;
}
if(dv.Count<1)
{
txtPageIndex.Text = "0";
txtPageIndex.Enabled = false;
btnGO.Enabled = false;
}
else
{
txtPageIndex.Enabled = true;
btnGO.Enabled = true;
}
}
}
else
{
if(Table1 != null)
Table1.Style.Add("display","none");
}
} private void btnFirst_Click(object sender, EventArgs e)
{
if(objectGrid != null)
{
objectGrid.CurrentPageIndex = 0; //如果有对象登记事件,通过委托的所有对象
if (PageIndexChanged != null)
{
PageIndexChanged(sender,e);
}
}
} private void btnPre_Click(object sender, EventArgs e)
{
if(objectGrid != null)
{
objectGrid.CurrentPageIndex = Math.Max(0,objectGrid.CurrentPageIndex-1); //如果有对象登记事件,通过委托的所有对象
if (PageIndexChanged != null)
{
PageIndexChanged(sender,e);
}
}
} private void btnNext_Click(object sender, EventArgs e)
{
if(objectGrid != null)
{
objectGrid.CurrentPageIndex = Math.Min(objectGrid.CurrentPageIndex+1,objectGrid.PageCount-1); //如果有对象登记事件,通过委托的所有对象
if (PageIndexChanged != null)
{
PageIndexChanged(sender,e);
}
}
} private void btnLast_Click(object sender, EventArgs e)
{
if(objectGrid != null)
{
objectGrid.CurrentPageIndex = objectGrid.PageCount - 1; //如果有对象登记事件,通过委托的所有对象
if (PageIndexChanged != null)
{
PageIndexChanged(sender,e);
}
}
} private void btnGO_Click(object sender, EventArgs e)
{
if(objectGrid != null)
{
int newIndex = 0;
try
{
newIndex = Convert.ToInt32(txtPageIndex.Text.Trim());
newIndex = newIndex - 1;
}
catch{} objectGrid.CurrentPageIndex = Math.Min(Math.Max(0,newIndex),objectGrid.PageCount - 1); //如果有对象登记事件,通过委托的所有对象
if (PageIndexChanged != null)
{
PageIndexChanged(sender,e);
}
}
}
#endregion
}
}