girdview 分页PageIndexChanging事件问题

合集下载

GridView分页的实现以及自定义分页样式功能实例

GridView分页的实现以及自定义分页样式功能实例

GridView分页的实现以及⾃定义分页样式功能实例GridView分页的实现复制代码代码如下:要在GridView中加⼊//实现分页AllowPaging="true"//⼀页数据10⾏PageSize="10"// 分页时触发的事件OnPageIndexChanging="gvwDesignationName_PageIndexChanging"在服务器事件⾥复制代码代码如下:protectedvoid gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e){gvwDesignationName.PageIndex=e.newIndex;bingDesignatioonName();}这⾥我给出⼀个通⽤显⽰分页的模板(⽹上搜的,⾃⼰给出注释)复制代码代码如下:<PagerTemplate>当前第://((GridView)Container.NamingContainer)就是为了得到当前的控件<asp:Label ID="LabelCurrentPage" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageIndex + 1 %>"> </asp:Label>页/共://得到分页页⾯的总数<asp:Label ID="LabelPageCount" runat="server" Text="<%# ((GridView)Container.NamingContainer).PageCount %>"></asp:Label>页//如果该分页是⾸分页,那么该连接就不会显⽰了.同时对应了⾃带识别的命令参数CommandArgument<asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page"Visible='<%#((GridView)Container.NamingContainer).PageIndex != 0 %>'>⾸页</asp:LinkButton><asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev"CommandName="Page" Visible='<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>'>上⼀页</asp:LinkButton>//如果该分页是尾页,那么该连接就不会显⽰了<asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page"Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>下⼀页</asp:LinkButton><asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page"Visible='<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>'>尾页</asp:LinkButton>转到第<asp:TextBox ID="txtNewPageIndex" runat="server" Width="20px" Text='<%#((GridView)Container.Parent.Parent).PageIndex + 1 %>' />页//这⾥将CommandArgument即使点击该按钮e.newIndex 值为3<asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="-2"CommandName="Page" Text="GO" /></PagerTemplate>对应该事件中代码为复制代码代码如下:protected void gvwDesignationName_PageIndexChanging(object sender, GridViewPageEventArgs e){// 得到该控件GridView theGrid = sender as GridView;int newPageIndex = 0;if (e.NewPageIndex==-3){//点击了Go按钮TextBox txtNewPageIndex = null;//GridView较DataGrid提供了更多的API,获取分页块可以使⽤BottomPagerRow 或者TopPagerRow,当然还增加了HeaderRow和FooterRowGridViewRow pagerRow = theGrid.BottomPagerRow;if (pagerRow != null){//得到text控件txtNewPageIndex = pagerRow.FindControl("txtNewPageIndex") as TextBox;}if ( txtNewPageIndex!= null){//得到索引newPageIndex = int.Parse(txtNewPageIndex.Text) - 1;}}else{//点击了其他的按钮newPageIndex = e.NewPageIndex;}//防⽌新索引溢出newPageIndex = newPageIndex < 0 ? 0 : newPageIndex;newPageIndex = newPageIndex >= theGrid.PageCount ? theGrid.PageCount - 1 : newPageIndex;//得到新的值theGrid.PageIndex = newPageIndex;//重新绑定bingDesignatioonName();}。

使用ListView控件和DataPager实现数据分页显示

使用ListView控件和DataPager实现数据分页显示

使用ListView数据绑定控件和DataPager实现数据分页显示为什么使用ListView+DataPager的方式实现分页显示?提供的诸多数据绑定控件,每一种都有它自己的优点和缺点。

如果需要对数据进行操作,如果数据量不大的情况下,DataList和GridView是最好的选择,但是他们会生产额外的<table><tr><tbody><td>标签。

如果只是罗列出来一些简单的数据,出于对性能的考虑,repeater必然是首选。

当然ListView和DataPager的组合必将是开发中的黄金组合,无论从性能上和功能实现上都是很棒的控件。

扩展性强,灵活度高:ListView控件集成了DataGrid、DataList、Repeater和GridView 控件的所有功能。

它可以像Repeater控件那样,让我们在控件内写任何HTML代码。

.NET 中给我们提供的新数据绑定控件ListView和DataPager,可以说,ListView就是DataGrid和Repeater的结合体,它既有Repeater控件的开放式模板,又具有DataGrid控件的编辑特性。

这绝对是一个可以引起你兴趣的好东东,因为它给你提供了比DataGird丰富得多的布局手段,同时又具有DataGrid 的所有特性。

具有分页功能:ListView控件本身并不提供分页功能,但是我们可以通过另一个控件– DataPager来实现分页的特性。

把分页的特性单独放到另一个控件里,会给我们带来很多好处,比如说可以让别的控件使用它,又比如说我们可以把它放在页面的任何地方。

实质上,DataPager就是一个扩展ListView分页功能的控件。

ListView控件ListView是用来显示数据的,它的使用类似于Repeater控件。

ListView控件中有n多模板,出示如下:·LayoutTemplate·ItemTemplate·AlternatingItemTemplate·SelectedItemTemplate·EmptyItemTemplate·EmptyDataTemplate·ItemSeparatorTemplate·GroupTemplate·GroupSeparatorTemplate·EditItemTemplate·InsertItemTemplate它有很多的模板。

winform中DataGridView实现分页功能

winform中DataGridView实现分页功能

winform中DataGridView实现分页功能在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource、BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现。

红色区域是对BindingNavigator控件扩展后的效果。

具体实现过程://窗体构造方法中定义分页所需变量:int pageSize = 0; //每页显示行数int nMax = 0; //总记录数int pageCount = 0; //页数=总记录数/每页显示行数int pageCurrent = 0; //当前页号int nCurrent = 0; //当前记录行DataTable dtInfo = new DataTable(); //存取查询数据结果//分页功能实现public void InitDataSet(){//判断每页显示记录数是否为空,在初始话窗体时为真if (txtRecordNumOfPage.Text.Trim() == ""){try{//pageSize =Convert.ToInt16(ConfigurationManager.AppSettings["PageSize"]); //设置页面行数//读取配置文件中设置的每页显示条数string szConfigFileName = Application.ExecutablePath + ".config"; XmlDocument doc = new XmlDocument();doc.Load(szConfigFileName);XmlNode root = doc.SelectSingleNode("configuration");XmlNode node =root.SelectSingleNode("appSettings/add[@key='PageSize']");XmlElement el = node as XmlElement;pageSize = Convert.ToUInt16(el.GetAttribute("value"));}catch{}if (pageSize == 0){pageSize = 20; //如果读取配置文件失败,则默认将每页显示条数设置为20}txtRecordNumOfPage.Text = pageSize.ToString(); //界面显示的“每页记录数”赋值}else{//读取界面设置的每页显示条数pageSize = Convert.ToUInt16(txtRecordNumOfPage.Text.Trim());}//总记录数赋值nMax = dtInfo.Rows.Count;pageCount = (nMax / pageSize); //采用整除计算页数//判断整除后是否有余数,有则对页数进行+1if ((nMax % pageSize) > 0) pageCount++;pageCurrent = 1; //当前页数从1开始nCurrent = 0; //当前记录数从0开始//调用显示数据方法LoadData();}//显示数据方法private void LoadData(){int nStartPos = 0; //当前页面开始记录行int nEndPos = 0; //当前页面结束记录行//判断查询结果是否为空if (dtInfo.Rows.Count == 0){dgvExperInfo.DataSource = null;return;}else{DataTable dtTemp = dtInfo.Clone(); //克隆DataTable结构,即将字段名称进行复制if (pageCurrent == 1){bindingNavigatorMoveFirstPage.Enabled = false;bindingNavigatorMovePreviousPage.Enabled = false;}else{bindingNavigatorMoveFirstPage.Enabled = true;bindingNavigatorMovePreviousPage.Enabled = true;}if (pageCurrent == pageCount){nEndPos = nMax;bindingNavigatorMoveLastPage.Enabled = false;bindingNavigatorMoveNextPage.Enabled = false;}else{bindingNavigatorMoveLastPage.Enabled = true;bindingNavigatorMoveNextPage.Enabled = true;nEndPos = pageSize * pageCurrent;}nStartPos = nCurrent;lblPageCount.Text = pageCount.ToString(); //界面显示总页数 lblCurrentPage.Text = Convert.ToString(pageCurrent);//当前页数txtCurrentPage.Text = Convert.ToString(pageCurrent);//跳转到页数的显示//从元数据源复制记录行for (int i = nStartPos; i < nEndPos; i++){dtTemp.ImportRow(dtInfo.Rows[i]);nCurrent++;}bdsInfo.DataSource = dtTemp;bdnInfo.BindingSource = bdsInfo;dgvExperInfo.DataSource = bdsInfo;dgvExperInfo.ClearSelection();}}//BindingNavigator控件上的项目点击事件,通过配置各个Item的Text值进行判断执行private void bdnInfo_ItemClicked(object sender, ToolStripItemClickedEventArgs e){if (e.ClickedItem.Text == "上一页"){pageCurrent--;if (pageCurrent <= 0){MessageBox.Show("已经是第一页,请点击“下一页”查看!");pageCurrent++;return;}else{nCurrent = pageSize * (pageCurrent - 1);}LoadData();}if (e.ClickedItem.Text == "下一页"){pageCurrent++;if (pageCurrent > pageCount){MessageBox.Show("已经是最后一页,请点击“上一页”查看!"); pageCurrent--;return;}else{nCurrent=pageSize*(pageCurrent-1);}LoadData();}if (e.ClickedItem.Text == "首页"){pageCurrent = 1;nCurrent = 0;LoadData();}if (e.ClickedItem.Text == "尾页"){pageCurrent = pageCount;nCurrent = pageSize * (pageCurrent - 1);LoadData();}}//跳转页实现private void btnPage_Click(object sender, EventArgs e){if (txtCurrentPage.Text.Trim() != ""){pageCurrent = Convert.ToInt16(txtCurrentPage.Text.Trim());//若输入页号大于最大显示页号,则跳转至最大页if (pageCurrent > pageCount){pageCurrent = pageCount;nCurrent = pageSize * (pageCurrent - 1);}//若输入页号小于1,则跳转至第一页else if (pageCurrent < 1){pageCurrent = 1;nCurrent = 0;LoadData();}//跳转至输入页号else{nCurrent = pageSize * (pageCurrent - 1); //当前行数定位 }//调用加载数据方法LoadData();}}private void txtCurrentPage_TextChanged(object sender, EventArgs e){bool IsNum = true;foreach (char c in txtCurrentPage.Text.Trim()){if (!char.IsNumber(c)) { IsNum = false; break; }}if (IsNum == false){txtCurrentPage.Text = pageCurrent.ToString();}}//当前页回车事件调用跳转页的操作private void txtCurrentPage_KeyPress(object sender, KeyPressEventArgs e) {if (e.KeyChar == 13){btnPage_Click(sender,e);}}//每页显示记录数变更事件private void txtRecordNumOfPage_TextChanged(object sender, EventArgs e) {bool IsNum = true;foreach (char c in txtRecordNumOfPage.Text.Trim()){if (!char.IsNumber(c)) { IsNum = false; break; }}if (IsNum == false){txtRecordNumOfPage.Text = pageSize.ToString();}//判断输入的每页显示条数是否为空或是否为0,输入长度是否大于4位等情况if (txtRecordNumOfPage.Text.Trim() == "" ||Convert.ToUInt32(txtRecordNumOfPage.Text.Trim()) == 0 ||txtRecordNumOfPage.Text.Trim().Length > 4){txtRecordNumOfPage.Text = pageSize.ToString();}//规避了特殊情况后直接调用显示数据方法LoadDocInfoToDGV();}至此,winform中对DataGridView控件的分页功能已经实现,该方法是在网上查了相关资料后参照一些常用的分页效果进行了一些扩展,也在组长的要求下,完善了一些细节上的工作:由于屏幕分辨率的不同,用户可自行对每页显示条数进行设置,设置结果可以在关闭窗体的事件中保存至配置文件,下次进行默认读取;对分页控件中按钮操作的优化,判断是否能够使用的功能,代码中已经进行了体现;另外由于显示器分辨率不尽相同,需要在窗体加载时,设置控件显示的位置,也同样需要代码进行控制。

利用ListView控件和DataPager实现数据分页显示

利用ListView控件和DataPager实现数据分页显示

利用ListView数据绑定控件和DataPager实现数据分页显示什么缘故利用ListView+DataPager的方式实现分页显示?提供的诸多数据绑定控件,每一种都有它自己的优势和缺点。

若是需要对数据进行操作,若是数据量不大的情形下,DataList和GridView是最好的选择,可是他们会生产额外的<table><tr><tbody><td>标签。

若是只是罗列出来一些简单的数据,出于对性能的考虑,repeater必然是首选。

固然ListView和DataPager 的组合必将是开发中的黄金组合,无论从性能上和功能实现上都是很棒的控件。

扩展性强,灵活度高:ListView控件集成了DataGrid、DataList、Repeater和GridView控件的所有功能。

它能够像Repeater控件那样,让咱们在控件内写任何HTML代码。

.NET 中给咱们提供的新数据绑定控件ListView和DataPager,能够说,ListView确实是DataGrid和 Repeater的结合体,它既有Repeater控件的开放式模板,又具有DataGrid控件的编辑特性。

这绝对是一个能够引发你爱好的好东东,因为它给你提供了比DataGird丰硕得多的布局手腕,同时又具有DataGrid的所有特性。

具有分页功能: ListView控件本身并非提供分页功能,可是咱们能够通过另一个控件–DataPager来实现分页的特性。

把分页的特性单独放到另一个控件里,会给咱们带来很多益处,比如说能够让别的控件利用它,又比如说咱们能够把它放在页面的任何地址。

实质上,DataPager 确实是一个扩展ListView分页功能的控件。

ListView控件ListView是用来显示数据的,它的利用类似于Repeater控件。

ListView控件中有n多模板,出示如下:·LayoutTemplate·ItemTemplate·AlternatingItemTemplate·SelectedItemTemplate·EmptyItemTemplate·EmptyDataTemplate·ItemSeparatorTemplate·GroupTemplate·GroupSeparatorTemplate·EditItemTemplate·InsertItemTemplate它有很多的模板。

GridView激发了未处理的事件“PageIndexChanging”

GridView激发了未处理的事件“PageIndexChanging”

GridView激发了未处理的事件“PageIndexChanging”GridView 激发了未处理的事件“PageIndexChanging” 之解决⽅案。

这是在处理GridView分页问题时经常会遇到的⼀个⽐较常见的分页出错问题。

这是⼀个GridView控件分页问题,如果是使⽤的VS中⾃⾝提供的数据源控件的话,没什么问题,直接可以选择"分页"功能,可是如果⾃⼰⽤代码设置数据源时就易出现这样的错误。

在编译时通过,进⾏ GridView 翻页时遇到上述错误,原来,GridView 的数据是动态绑定的,指定PageIndexChanging 事件,由于绑定GridView数据源时是在.CS⽂件⾥⽤代码进⾏绑定,所以当在.ASPX⽂件⾥对GridView属性设置AllowPaging为True时,直接进⾏分页调试时却报错“"GridView1"激发了未处理的事件"PageIndexChanging"”,之前直接在可视化绑定数据源时没出现过这种问题。

并且打开了之前的直接可视化绑定数据源并且分页调试正常的⽂件来查找,并没有发现PageIndexChanging这个函数事件。

以下为GridView“GridView1”激发了未处理的事件“PageIndexChanging”的解决办法:⼀、在控件girdview的代码(在.ASPX⽂件的源⽂件⾥)后⾯加上OnPageIndexChanging="GridView1_PageIndexChanging",即右键点GridView,属性,事件,找到这个事件,双击后--->⼆、在对应的.CS⽂件⾥插⼊以下代码:如果是你通过GridView进⾏直接的数据源绑定,那么通过下⾯的程序代码即可解决。

程序代码--->protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){GridView1.PageIndex = e.NewPageIndex;GridView1.DataSource ="数据源"; //引⽤刚才建⽴的数据源GridView1.DataBind();}如果是你对部分字段间接地对GridView进⾏数据源绑定,那么则要通过下⾯的程序代码即可解决。

GridView自定义分页实例详解(附demo源码下载)

GridView自定义分页实例详解(附demo源码下载)

GridView⾃定义分页实例详解(附demo源码下载)本⽂实例讲述了GridView⾃定义分页实现⽅法。

分享给⼤家供⼤家参考,具体如下:CSS样式⾸先把CSS样式代码粘贴过来:.gv{border: 1px solid #D7D7D7;font-size:12px;text-align:center;}.gvHeader{color: #3F6293;background-color: #F7F7F7;height: 24px;line-height: 24px;text-align: center;font-weight: normal;font-variant: normal;}.gvHeader th{font-weight: normal;font-variant: normal;}.gvRow, .gvAlternatingRow, .gvEditRow{line-height: 20px;text-align: center;padding: 2px;height: 20px;}.gvAlternatingRow{background-color: #F5FBFF;}.gvEditRow{background-color: #FAF9DD;}.gvEditRow input{background-color: #FFFFFF;width: 80px;}.gvEditRow .gvOrderId input, .gvEditRow .gvOrderId{width: 30px;}.gvEditRow .checkBox input, .gvEditRow .checkBox{width: auto;}.gvCommandField{text-align: center;width: 130px;}.gvLeftField{text-align: left;padding-left: 10px;}.gvBtAField{text-align: center;width: 130px;}.gvCommandField input{background-image: url(../Images/gvCommandFieldABg.jpg);background-repeat: no-repeat;line-height: 23px;border-top-style: none;border-right-style: none;border-bottom-style: none;border-left-style: none;width: 50px;height: 23px;margin-right: 3px;margin-left: 3px;text-indent: 10px;}.gvPage{padding-left: 15px;font-size: 18px;color: #333333;font-family: Arial, Helvetica, sans-serif;}.gvPage a{display: block;text-decoration: none;padding-top: 2px;padding-right: 5px;padding-bottom: 2px;padding-left: 5px;border: 1px solid #FFFFFF;float: left;font-size: 12px;font-weight: normal;}.gvPage a:hover{display: block;text-decoration: none;border: 1px solid #CCCCCC;}GridView样式根据上⾯列出的CSS样式样式名称,将他们分别加⼊⽹页GridView的不同标记中,举例如下:<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" CssClass="gvRow" /><HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" CssClass="gvHeader" /><AlternatingRowStyle BackColor="#F7F7F7" CssClass="gvAlternatingRow" />Pager分页模板其中gridview下⽅的换页代码为:<PagerTemplate><table width="100%" style="font-size:12px;"><tr><td style="text-align: right">第<asp:Label ID="lblPageIndex" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>'></asp:Label>页/共<asp:Label ID="lblPageCount" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageCount %>'></asp:Label>页&nbsp;&nbsp;<asp:LinkButton ID="LinkButtonFirstPage" runat="server" CommandArgument="First" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">⾸页</asp:LinkButton><asp:LinkButton ID="LinkButtonPreviousPage" runat="server" CommandArgument="Prev" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != 0 %>">上⼀页</asp:LinkButton><asp:LinkButton ID="LinkButtonNextPage" runat="server" CommandArgument="Next" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">下⼀页</asp:Lin <asp:LinkButton ID="LinkButtonLastPage" runat="server" CommandArgument="Last" CommandName="Page" Visible="<%# ((GridView)Container.NamingContainer).PageIndex != ((GridView)Container.NamingContainer).PageCount - 1 %>">尾页</asp:LinkB <asp:TextBox ID="txtNewPageIndex" runat="server" Text='<%# ((GridView)Container.Parent.Parent).PageIndex + 1 %>' Width="20px" AutoPostBack="true" ></asp:TextBox><asp:LinkButton ID="btnGo" runat="server" CommandArgument="GO" CommandName="Page" Text="GO" OnClick="btnGo_Click"></asp:LinkButton></td></tr></table></PagerTemplate>触发事件⽅法btnGo_Click的定义如下所⽰:protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){GridView1.PageIndex = e.NewPageIndex;BindData();}protected void btnGo_Click(object sender, EventArgs e){if (((LinkButton)sender).CommandArgument.ToString().ToLower().Equals("go")){GridViewRow gridViewRow = GridView1.BottomPagerRow;TextBox numBox = (TextBox)GridView1.BottomPagerRow.FindControl("txtNewPageIndex");int inputNum = Convert.ToInt32(numBox.Text);GridView1.PageIndex = inputNum - 1;BindData();}}效果图展⽰及源码下载完整实例代码点击此处。

自己写的一个分页控件(WinForm)

自己写的一个分页控件(WinForm)
}
}
再看 Item_Click 事件:
OnItemClicked
protected override void OnItemClicked(ToolStripItemClickedEventArgs e)
{
base.OnItemClicked(e);
}
else
{ MessageBox.Show("数字超出范围"); }
}
break;
{
var handler = Events[pageIndexChangingKey] as PageIndexChangingEventHandler;
if (handler != null)
{ handler(this, e); }
queryItem.ToolTipText = QueryTipText;
this.Items.AddRange(new ToolStripItem[] { firtItem, previousItem, nextItem, lastItem, textItem, labelItemPrefix, labelItem, labelItemEnd, queryItem });
textItem.Size = new Size(45, 20);
labelItemPrefix = new ToolStripLabel();
labelItemPrefix.Text = "/";
= "PageNavigatorLabelPrefix";
OnPageIndexChanging(ee);
}
最后 PageIndexChanging 事件:

GridView控件自定义分页详解

GridView控件自定义分页详解

GridView控件自定义分页详解在这里我们将用一个隐藏字段来保存这个PageIndex,即当前页码.当点击上一页时,将它的值减一,知道为0,要注意的一点这里的第一页页码是0而不是1.下面看看代码,然后我们再分析分析!1<asp:GridView ID="NewsGrid" runat="server" AutoGenerateColumns="False" AllowPaging="false" Width="100%">2 <Columns>3 <asp:BoundField DataField="NewsId" HeaderText="新闻ID"/>4 <asp:HyperLinkField DataNavigateUrlFields="NewsId" DataNavigateUrlFormatString="~/Details.aspx?ID={0}"5 DataTextField="Title" HeaderText="新闻标题" ItemStyle-Width="70%"/>6 <asp:BoundField DataField="PostTime" HeaderText="发布时间"/>7 <asp:CommandField HeaderText="新闻管理" ShowCancelButton="False" ShowDeleteButton="True"8 ShowEditButton="True"/>9 </Columns>10 </asp:GridView>实用文档11 <div style=" height:16px; padding-top:5px; margin-right:30px; float:right">12 <asp:HiddenField ID="CurrentPage" runat="server" Value="0"/>13 <asp:LinkButton ID="First" runat="server" CommandArgument="first" OnClick="PagerButton_Click">首页</asp:LinkButton>14 <asp:LinkButton ID="Prev" runat="server" CommandArgument="prev" OnClick="PagerButton_Click">上一页</asp:LinkButton>15 <asp:LinkButton ID="Next" runat="server" CommandArgument="next" OnClick="PagerButton_Click">下一页</asp:LinkButton>16 <asp:LinkButton ID="Last" runat="server" CommandArgument="last" OnClick="PagerButton_Click">尾页</asp:LinkButton>17 </div> CS文件中的代码:1 protected void PagerButton_Click(object sender, EventArgs e)2 {3 int pageIndx = Convert.ToInt32(CurrentPage.Value);4 int totals = NewsManager.GetNews(0, pageSize).TotalRecords;5 int pages = (totals % pageSize) == 0 ? (totals / pageSize) : (totals / 实用文档pageSize + 1);6 string arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();7 switch (arg)8 {9 case "prev":10 if (pageIndx > 0)11 {12 pageIndx -= 1;13 }14 break;15 case "next":16 if (pageIndx < pages - 1)17 {18 pageIndx += 1;19 }20 break;21 case "last":实用文档22 pageIndx = pages - 1;23 break;24 default:25 pageIndx = 0;26 break;27 }28 CurrentPage.Value = pageIndx.ToString();29 NewsGrid.DataSource = NewsManager.GetNews(pageIndx , pageSize).Entities;30 NewsGrid.DataBind();31 }如何在GridView中增加效果protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){//将满足特定条件的行标为高亮if (e.Row.RowType == DataControlRowType.DataRow)//判定当前的行是否属于datarow类型的行实用文档{int money = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "MONEY"));//取当前行的列值if (money == 77)e.Row.BackColor = Color.Red;//string customer = (string)DataBinder.Eval(e.Row.DataItem, "CUSTOMER");string customer = DataBinder.Eval(e.Row.DataItem, "CUSTOMER").ToString();if (customer == "sdf")e.Row.BackColor = Color.Red;}//加入鼠标滑过的高亮效果if (e.Row.RowType == DataControlRowType.DataRow)//判定当前的行是否属于datarow类型的行{//当鼠标放上去的时候先保存当前行的背景颜色并给附一颜色e.Row.Attributes.Add("onmouseover", 实用文档"currentcolor=this.style.backgroundColor;this.style.backgroundColor='yellow',t his.style.fontWeight='';");//当鼠标离开的时候将背景颜色还原的以前的颜色e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");}//单击行改变行背景颜色if (e.Row.RowType == DataControlRowType.DataRow){e.Row.Attributes.Add("onclick","this.style.backgroundColor='#99cc00'; this.style.color='buttontext';this.style.cursor='default';");}如何在GridView中一次性批量更新多行数据2.0下含有DropDownList的GridView编辑、删除的完整例子!<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" PageSize="10"实用文档Width="542px" AllowPaging="True" AllowSorting="True"DataKeyNames="DB31_1,DB31_2" OnRowCancelingEdit="GridView1_RowCancelingEdit"OnRowDeleting="GridView1_RowDeleting"OnRowEditing="GridView1_RowEditing"OnRowUpdating="GridView1_RowUpdating"OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"OnSorting="GridView1_Sorting" ><Columns><asp:TemplateField HeaderText="序号"><ItemTemplate><%# this.GridView1.PageIndex * this.GridView1.PageSize + this.GridView1.Rows.Count + 1%></ItemTemplate></asp:TemplateField>实用文档<asp:TemplateField HeaderText="学历代码" SortExpression="DB1_1"><EditItemTemplate><%--<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("DB1_1") %>'></asp:TextBox>--%><asp:DropDownList ID ="ddlXL"runat="server" DataValueField='<%#Bind("DB1_1") %>'></asp:DropDownList></EditItemTemplate><ItemTemplate><asp:Label ID="Label1" runat="server" Text='<%# Bind("xueliText") %>'></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="学历名称" SortExpression="DB1_2"><EditItemTemplate>实用文档<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("DB1_2") %>'></asp:TextBox></EditItemTemplate><ItemTemplate><asp:Label ID="Label2" runat="server" Text='<%# Bind("DB1_2") %>'></asp:Label></ItemTemplate></asp:TemplateField><asp:TemplateField HeaderText="操作" ShowHeader="False"><EditItemTemplate><asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"Text="更新"></asp:LinkButton><asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"实用文档Text="取消"></asp:LinkButton></EditItemTemplate><ItemTemplate><asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"Text="编辑" OnClientClick="return confirm('确认要编辑吗?');"></asp:LinkButton><asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Delete"Text="删除" OnClientClick="return confirm('确认要删除吗?');"></asp:LinkButton><asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Select"Text="选择"></asp:LinkButton></ItemTemplate>实用文档</asp:TemplateField></Columns><AlternatingRowStyle BackColor="Aquamarine" /></asp:GridView>/// <summary>/// 绑定数据到GridView/// </summary>private void GridViewBind(){检索数据库string strSql = "SELECT * FROM DB1";得到数据集this.GridView1.DataSource=conn.GetDs(strSql).Tables[0].DefaultView;this.GridView1.DataBind();实用文档}/// <summary>/// 编辑当前行/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e){GridView1.EditIndex = e.NewEditIndex;//当前编辑行背景色高亮this.GridView1.EditRowStyle.BackColor = Color.FromName("#F7CE90");GridViewBind();}/// <summary>实用文档/// 取消编辑状态/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e){GridView1.EditIndex = -1;GridViewBind();}/// <summary>/// 删除记录过程/// </summary>/// <param name="sender"></param>/// <param name="e"></param>实用文档protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){//得到单位编号string rowToDelete =GridView1.DataKeys[e.RowIndex].Values[0].ToString();//转换为整数//int ID=Convert.ToInt32(rowToDelete);//从数据库中删除string str = "DELETE FROM DB1 where DB1_1=" + "'" + rowToDelete + "'" + "";try{conn.RunSql(str);//重新绑定数据实用文档GridViewBind();}catch (Exception ex){Response.Write("数据库错误,错误原因:" + ex.Message);Response.End();}}/// <summary>/// 更新记录过程/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)实用文档{string ID = GridView1.DataKeys[e.RowIndex].Values[0].ToString();string DB1_1 =((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1")).Text;//string DB1_2 =((TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2")).Text;string DB1_2 =(((DropDownList))GridView1.Rows[e.RowIndex].FindControl("ddlXL")).SelectedI tem.Text;//判断表单项是否有空并给出提示信息if (DB1_1 == "" || DB1_2 == ""){conn.Alert("请输入完整信息!", Page);return;}实用文档try{conn.BuilderEdit("select * from DB1 where DB1_1 ='" + ID + "'");conn.dr["DB1_1"] = DB1_1;conn.dr["DB1_2"] = DB1_2;conn.BuilderEditClose();}catch (OracleException err){if (err.Code.ToString() == "1")conn.Alert("错误:已存在具有相同主键的记录", Page);elseconn.Alert("错误:未能添加记录", Page);}实用文档Response.Write("<script language='javascript'>alert('数据已被保存!');</script>");//返回浏览状态GridView1.EditIndex = -1;GridViewBind();}/// <summary>/// 分页事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){GridView1.PageIndex = e.NewPageIndex;GridViewBind();实用文档}/// <summary>/// 加入鼠标效果及为DropDownList绑定值/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){//为DropDownList绑定值if (((DropDownList)e.Row.FindControl("ddlXL")) != null){DropDownList ddlXL = (DropDownList)e.Row.FindControl("ddlXL");ddlXL.Items.Clear();ddlXL.Items.Add(new ListItem("博士", "1"));实用文档ddlXL.Items.Add(new ListItem("硕士", "2"));ddlXL.Items.Add(new ListItem("学士", "3"));}//加入鼠标滑过的高亮效果if (e.Row.RowType == DataControlRowType.DataRow)//判定当前的行是否属于datarow类型的行{//当鼠标放上去的时候先保存当前行的背景颜色并给附一颜色e.Row.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='yellow',t his.style.fontWeight='';");//当鼠标离开的时候将背景颜色还原的以前的颜色e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor,this.style.fontWeight='';");}//单击行改变行背景颜色实用文档if (e.Row.RowType == DataControlRowType.DataRow){e.Row.Attributes.Add("onclick", "this.style.backgroundColor='#99cc00'; this.style.color='buttontext';this.style.cursor='default';");}}2.0下含有CheckBox的GridView删除选定记录实例<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" PageSize="5"2 Width="726px" AllowPaging="True" AllowSorting="True"3 DataKeyNames="DB1_1,DB1_2" OnRowDeleting="GridVie w1_RowDeleting" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDataBound="GridView1_RowDataBound"OnSorting="GridView1_Sorting" Height="279px" >4 <Columns>实用文档5 <asp:TemplateField HeaderText="序号" >6 <ItemTemplate>7 <%# this.GridView1.PageIndex *this.GridView1.PageSize + this.GridView1.Rows.Count + 1%>8 </ItemTemplate>9 </asp:TemplateField>10 <asp:TemplateField HeaderText="选择" >11 <ItemTemplate>12 <asp:CheckBox ID="chkSelect" runat="server" ></asp:CheckBox>13 </ItemTemplate>14 </asp:TemplateField>15 <asp:TemplateField HeaderText="操作" ShowHeader="False">16 <ItemTemplate>实用文档17 <asp:LinkButton ID="lbtnDelete" runat="server" CausesValidation="False" CommandName="Delete"18 Text="删除" OnClientClick="return confirm('确认要删除吗?');"></asp:LinkButton>19 </ItemTemplate>20 </asp:TemplateField>21 </Columns>22 <AlternatingRowStyle BackColor="Aquamarine" />23 </asp:GridView>1 <asp:CheckBox ID="chkSelectAll" runat="server" Text="全部选中" OnCheckedChanged="chkSelectAll_CheckedChanged"AutoPostBack="True" ></asp:CheckBox>2 <asp:Button ID="btnDelete" runat="server" Text="删除" OnClick="btnDelete_Click" />1 protected void btnDelete_Click(object sender, EventArgs e)2 {实用文档3 string strDelete = "";4 for (int i = 0; i < this.GridView1.Rows.Count; i++)5 {6 string Label;7 bool isChecked =((CheckBox)GridView1.Rows[i].FindControl("chkSelect")).Checked;8 Label = ((Label)GridView1.Rows[i].FindControl("labXH")).Text;9 if (isChecked)10 {11 strDelete = "DB1_1" + "=" + Label;12 }13 }14 conn.RunSql("Delete from DB1 where " + strDelete15 this.chkSelectAll.Checked = false;16 GridViewBind();实用文档17 }1819 protected void chkSelectAll_CheckedChanged(object sender, EventArgs e)20 {21 //遍历GridView行获取CheckBox属性22 for (int i = 0; i < this.GridView1.Rows.Count; i++)23 {24 ((CheckBox)GridView1.Rows[i].FindControl("chkSelect")).Checked = this.chkSelectAll.Checked;25 }26 }实用文档。

GridView自定义分页样式

GridView自定义分页样式

/a/1340057/一些静态网页上的分页样式很漂亮比如:平时在.net中也有用到分页,但没有注意到这些细节,这两天有空,一个朋友也问我这个问题,顺便做了一个小DEMO出来,以方便自己以后用,如果能帮到你,那最好不过了!效果:呵呵,gridview样式丑了点啊前台代码<%@ Page Language="C#" AutoEventWireup="true"CodeBehind="Default.aspx.cs" Inherits="GridView自定义分页._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>GridView自定义分页,利用自定义来完成,关键是样式表的写法</title> <link rel="stylesheet" type="text/css" href="css.css" media="all" /></head><body><form id="form1" runat="server"><div class="mycss">/*这里给div加样式就行*/<asp:GridView ID="GridView1" runat="server" PageSize="2" AllowPaging="True"onpageindexchanging="GridView1_PageIndexChanging"onselectedindexchanged="GridView1_SelectedIndexChanged"><PagerSettings FirstPageText="首页" LastPageText="末页"NextPageText="下一页" PageButtonCount="5" PreviousPageText="上一页" /><PagerStyle BorderColor="#66FF66" Font-Names="宋体"Font-Size="12px" /></asp:GridView></div></form></body></html>后台代码using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.OleDb;namespace GridView自定义分页{public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){this.InitGridView();}}private DataSet GetAllUser(string sqlTest){string conStr ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Test\\GridView自定义分页/liuwm5000/admin/file://gridview/自定义分页/liuwm5000/admin/file://db//DB.mdb";DataSet ds=new DataSet();OleDbConnection con = new OleDbConnection(conStr);con.Open();OleDbCommand com = new OleDbCommand(sqlTest, con);OleDbDataAdapter ad = new OleDbDataAdapter(com);ad.Fill(ds);return ds;}private void InitGridView(){string sqlTest = "select * from [user] order by UserId";this.GridView1.DataSource = this.GetAllUser(sqlTest);this.GridView1.DataBind();}protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e){GridView1.PageIndex = e.NewPageIndex;this.InitGridView();}protected void GridView1_SelectedIndexChanged(object sender, EventArgs e){}}}关键的东西在这--样式表,下面是样式表里的内容.mycss table tr td span{BORDER-RIGHT: #000099 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #000099 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #000099 1px solid; COLOR: #fff; PADDING-TOP: 2px; BORDER-BOTTOM: #000099 1px solid; BACKGROUND-COLOR: #000099}.mycss table tr td{PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center}div.mycss table tr td a{BORDER-RIGHT: #aaaadd 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaaadd 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; MARGIN: 2px; BORDER-LEFT: #aaaadd 1px solid; COLOR: #000099;PADDING-TOP: 2px; BORDER-BOTTOM: #aaaadd 1px solid;TEXT-DECORATION: none}div.mycss table tr td A:hover {BORDER-RIGHT: #000099 1px solid; BORDER-TOP: #000099 1px solid; BORDER-LEFT: #000099 1px solid; COLOR: #000; BORDER-BOTTOM:#000099 1px solid}div.mycss table tr td A:active {BORDER-RIGHT: #000099 1px solid; BORDER-TOP: #000099 1px solid; BORDER-LEFT: #000099 1px solid; COLOR: #000; BORDER-BOTTOM:#000099 1px solid}到这里就写完了,要想改样式,就改样式表里的内容就行了,网上搜你喜欢的样式想怎么改就怎么改吧!!。

GridView1 删除、修改(字段类型全而且用GridView集成处理)

GridView1 删除、修改(字段类型全而且用GridView集成处理)

张家口教育学院教育技术中心 第 1 页 共 21 页删除、修改记录(字段类型全、GridView 集成处理、双向排序、翻页、绑定列)2010.10.30学习内容:TemplatedField 模板列技术、使用绑定列技术、鼠标所在行颜色提示、绑定列中使用下拉列表框、设置字段的ControlStyle 属性运行态1. 在VS2008中建立Web项目。

2. 在Windows环境下将数据库jyxystu.mdf(命名含义为教育学院学生)和jyxystu.ldf拷贝到项目的App_Data目录下,并在VS中添加的项目中。

张家口教育学院教育技术中心第2 页共21 页3. 在SQL Server 2000中附加数据库jyxystu.mdf。

4. 在数据库中建立一个表:tb_zg(命名含义为职工表,以tb开头意思是本对象是一个表),表结构如下:5. 录入若干条记录(为了看出效果,记录数至少20条)6. 修改web.config文件,(1) 删除</configSections>下方的<appSettings/>(2) 在</configSections>位置下增加:张家口教育学院教育技术中心第3 页共21 页<appSettings><add key="ConnStr" value="Server=localhost;uid=sa;pwd=;database=jyxystu"></add>7. 在项目中添加Web窗体mygridview.aspx(文件名含义为按类查询)8. 布局控件如下:一个GridView,在GridView下方有两个label,准备显示第x页共y页。

ID属性分别是Label1和Label2。

GridView1自动套用格式为"雪松"。

AutoGenerateColumns="False"AllowSorting="True"AllowPaging="True"PageSize="10"因为要采用分页技术所以需要再设置PagerSettings属性FirstPageText="首页"LastPageText="尾页"NextPageText="下一页"PreviousPageText="上一页"Mode="NextPreviousFirstLast"把GridView中的FontSize设为small。

grid view分页

grid view分页

GridView.AllowPaging 属性注意:此属性在 .NET Framework 2.0 版中是新增的。

获取或设置一个值,该值指示是否启用分页功能。

命名空间:System.Web.UI.WebControls程序集:System.Web(在system.web.dll 中)语法C#public virtual bool AllowPaging { get; set; }属性值如果启用分页功能,则为true;否则为false。

默认为false。

备注GridView控件可自动将数据源中的所有记录分成多页,而不是同时显示这些记录。

如果数据源支持分页功能,GridView控件可利用此功能,并提供内置的分页功能。

分页功能可用于支持System.Collections.ICollection接口的任何数据源对象或支持分页功能的数据源。

若要启用分页功能,请将AllowPaging属性设置为true。

默认情况下,GridView控件在一个页面上一次显示10 条记录。

通过设置PageSize属性,可更改每页上所显示记录的数目。

若要确定显示数据源内容所需的总页数,请使用PageCount属性。

通过使用PageIndex属性,可确定当前显示的页面的索引。

启用分页时,会在GridView控件中自动显示一个称为页导航行的附加行。

页导航行包含允许用户导航至其他页面的控件。

使用PagerSettings属性可以控制页导航行的设置(如页导航显示模式、同时显示的页链接数和页导航控件的文本标签)。

通过设置Position属性,页导航行可在控件的顶部、底部或同时在顶部和底部显示。

通过设置Mode属性,您还可以从四种内置页导航显示模式中选择一种。

下表描述了内置的显示模式。

若要控制页导航行的外观(包括其背景色、字体颜色和位置),请使用PagerStyle属性。

注意使用GridView控件还可以定义页导航行的自定义模板。

有关创建自定义页导航行模板的更多信息,请参见PagerTemplate。

DataGridView使用自定义控件实现简单分页功能(推荐)

DataGridView使用自定义控件实现简单分页功能(推荐)

DataGridView使⽤⾃定义控件实现简单分页功能(推荐)本例⼦使⽤⾃定义控件⽅法实现,数据库使⽤的是SQL Server,实现过程如下:1、新建⼀个⾃定义控件,命名为:PageControl。

2、PageControl代码如下:public partial class PageControl : UserControl{//委托及事件public delegate void BindPage(int pageSize, int pageIndex, out int totalCount);public event BindPage BindPageEvent;//属性public int PageSize { get; set; } = 1; //每页显⽰记录数public int PageIndex { get; set; } //页序号public int TotalCount { get; set; } //总记录数public int PageCount { get; set; } //总页数public PageControl(){InitializeComponent();//取消下划线linkFirst.LinkBehavior = LinkBehavior.NeverUnderline;linkPrev.LinkBehavior = LinkBehavior.NeverUnderline;linkNext.LinkBehavior = LinkBehavior.NeverUnderline;linkLast.LinkBehavior = LinkBehavior.NeverUnderline;linkGo.LinkBehavior = LinkBehavior.NeverUnderline;}/// <summary>/// 设置页/// </summary>public void SetPage(){//总记录数int totalCount = 0;BindPageEvent(PageSize, PageIndex + 1, out totalCount);TotalCount = totalCount;//总页数if (TotalCount % PageSize == 0)PageCount = TotalCount / PageSize;elsePageCount = TotalCount / PageSize + 1;//当前页及总页数txtCurrentPage.Text = (PageIndex + 1).ToString();lblTotalPage.Text = "共 " + PageCount.ToString() + " 页";}/// <summary>/// ⾸页/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void linkFirst_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){if (e.Button == MouseButtons.Left){PageIndex = 0;SetPage();}}/// <summary>/// 上⼀页/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void linkPrve_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){if (e.Button == MouseButtons.Left){PageIndex--;if (PageIndex < 0){PageIndex = 0;}SetPage();}}/// <summary>/// 下⼀页/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void linkNext_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){if (e.Button == MouseButtons.Left){PageIndex++;if (PageIndex > PageCount - 1){PageIndex = PageCount - 1;}SetPage();}}/// <summary>/// 末页/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void linkLast_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){if (e.Button == MouseButtons.Left){PageIndex = PageCount - 1;SetPage();}}/// <summary>/// 只能按0-9、Delete、Enter、Backspace键/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void txtSetPage_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>/// 指定页/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void linkGo_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){if (e.Button == MouseButtons.Left){Go();}}private void Go(){if (string.IsNullOrEmpty(txtCurrentPage.Text)){MessageBox.Show("指定页不能为空。

DataView分页

DataView分页

DataView分页我使用DataView从DataSet的table中筛选出数据,然后设置DataGrid的Source为DataView,现在分页出问题了:原来用DataSet做source时分页正常,现在用DataView做source后,点击页面下的分页数字,提示“无效的CurrentPageIndex 值。

它必须大于等于 0 且小于PageCount”。

请问这是什么原因?谢谢!!!____________________________________________________________________ ________________________ __答1:先查一查你的CurrentPageIndex是多少先________________________________________________________________ ____________________________ __答2:我的意思是第一页能正常显示,点击分页后就出现提示。

________________________________________________________________ ____________________________ __答3:你的页码有问题!你用的是NewPageIndex 属性吗?________________________________________________________________ ____________________________ __答4:应该不是这个问题:myDataGrid.CurrentPageIndex = e.NewPageIndex用DataSet绑定就没很正常啊。

________________________________________________________________ ____________________________ __答5:如果是你自己写的那么你写多了!如果是NewPageIndex 那么就不晓得了!本文来自: 乘风原创程序() 详细出处参考:/web/717/230582.htmHTML:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="StfCmpManager.aspx.cs" Inherits="Stf CmpManager" %>。

winform listview selectionindexchanged -回复

winform listview selectionindexchanged -回复

winform listview selectionindexchanged -回复“winform listview selectionindexchanged”是一个用于Windows Forms应用程序中的事件,它触发于用户在列表视图控件中选择项发生变化时。

这个事件的目的是让应用程序可以根据用户选择的不同项进行相应的操作或显示相关的信息。

在这篇文章中,我们将逐步回答关于winform listview selectionindexchanged事件的问题,包括它的作用、如何使用和示例代码等。

第一部分:背景介绍在开始讲解winform listview selectionindexchanged事件之前,我们先来了解一下Windows Forms应用程序和列表视图控件的基本概念。

Windows Forms是微软开发的一种图形用户界面框架,用于构建Windows操作系统上基于桌面的应用程序。

它提供了一系列用户界面控件,使开发者可以通过拖放方式快速构建应用程序界面。

列表视图控件是Windows Forms中用于显示和管理数据的一种常用控件。

它可以以表格形式显示数据,每一行表示一个项,每一列表示一个属性。

用户可以选择一个或多个项进行操作。

第二部分:winform listview selectionindexchanged事件的作用winform listview selectionindexchanged事件是列表视图控件提供的一个事件,它在用户选择项发生变化时触发。

通过该事件,应用程序可以获取用户选择的项的索引或值,并根据这些信息进行相应的处理。

这个事件常用于以下几个方面:1. 更新界面:当用户选择不同的项时,可以根据选择的项显示不同的界面。

比如,在一个文件管理应用程序中,当用户选择一个文件时,可以根据选择的文件在界面上显示文件的详细信息。

2. 执行操作:当用户选择不同的项时,可以根据选择的项执行不同的操作。

winform listview selectionindexchanged -回复

winform listview selectionindexchanged -回复

winform listview selectionindexchanged -回复WinForms 是Microsoft 提供的用于开发Windows 窗体应用程序的技术框架。

其中的ListView 控件是用于显示信息并允许用户选择其中之一或多个项的常用控件之一。

而SelectionIndexChanged 事件则是在ListView 中的选择项发生变化时触发的事件。

在本文中,我们将逐步解答关于WinForm ListView 的SelectionIndexChanged 事件的一系列问题。

1. ListView 控件介绍ListView 是WinForms 中的一个常用控件,它允许开发人员以列表的形式显示数据,并且支持许多与列表相关的功能,如排序、分组、多选等。

ListView 通常用于显示大量数据,并且可以根据需要进行自定义布局。

2. SelectionIndexChanged 事件介绍SelectionIndexChanged 是ListView 控件中的一个事件,当用户在ListView 中选择的项发生变化时,该事件将被触发。

这意味着无论用户是通过单击项还是通过键盘等方式选择项,只要选择发生变化,该事件就会被触发。

3. SelectionIndexChanged 事件与SelectedIndexChanged 事件的区别在WinForms 中,ListView 控件具有一个名为SelectedIndexChanged 的事件,其功能与SelectionIndexChanged 事件相同。

因此,这两个事件的区别并不大,只是名称不同而已。

其中,SelectionIndexChanged 是ListView 在默认情况下命名为的事件,而SelectedIndexChanged 是在设计时修改事件名称为SelectedIndexChanged 后所引起的名称不同。

4. SelectionIndexChanged 事件的使用方法使用SelectionIndexChanged 事件非常简单,只需要在设计时或者在代码中将其与ListView 控件关联即可。

winform listview selectionindexchanged -回复

winform listview selectionindexchanged -回复

winform listview selectionindexchanged -回复"WinForm ListView SelectionIndexChanged" is a specific event that occurs in the Windows Forms (WinForm) application framework. In this article, we will discuss the SelectionIndexChanged event and provide step-by-step instructions on how to handle it in a WinForm ListView control.Introduction:WinForm is a graphical user interface (GUI) framework provided by Microsoft for developing desktop applications in .NET. ListView is a control that presents a collection of items in a list-like format. The SelectionIndexChanged event is triggered when the user changes the selection in the ListView control.Step 1: Creating a WinForm Application:To begin, let's create a new WinForm application. Open Visual Studio and choose "Create a new project." Select the "Windows Forms App (.NET Framework)" template, provide a suitable name for the project, and click "Create."Step 2: Adding a ListView Control:Once the project is created, you will be presented with the VisualStudio designer view. From the Toolbox, drag and drop a ListView control onto the form. Resize and position it according to your preference.Step 3: Populating the ListView Control:Next, let's populate the ListView control with some items. To do this, we need to switch to the code-behind file for the form.Double-click on the form to open the code editor. Inside the Form_Load event handler, add the following code:csharpprivate void Form1_Load(object sender, EventArgs e){listView1.View = View.Details;listView1.Columns.Add("Name", 100);listView1.Columns.Add("Age", 50);ListViewItem item1 = new ListViewItem("John");item1.SubItems.Add("25");ListViewItem item2 = new ListViewItem("Emma");item2.SubItems.Add("30");ListViewItem item3 = new ListViewItem("Michael");item3.SubItems.Add("35");listView1.Items.AddRange(new ListViewItem[] { item1, item2, item3 });}In this code, we configure the ListView control to display details view along with two columns: "Name" and "Age." We then create three ListViewItem objects and populate them with sample data. Finally, we add these items to the ListView using the AddRange method.Step 4: Handling the SelectionIndexChanged Event:Now that the ListView control is populated, let's add a handler for the SelectionIndexChanged event. Switch back to the designer view and double-click on the ListView control to open the code editor. Visual Studio will generate an event handler for the SelectionIndexChanged event. Add the following code inside the event handler:csharpprivate void listView1_SelectedIndexChanged(object sender, EventArgs e){if (listView1.SelectedItems.Count > 0){ListViewItem selectedItem = listView1.SelectedItems[0];string selectedName = selectedItem.SubItems[0].Text;string selectedAge = selectedItem.SubItems[1].Text;MessageBox.Show("Selected Name: " + selectedName + "\nSelected Age: " + selectedAge);}}In this code, we first check if there's at least one item selected in the ListView. If so, we retrieve the selected item using the SelectedItems collection and index 0. We then access the sub-items and retrieve the text values for the "Name" and "Age" columns. Finally, we display a MessageBox showing the selected name and age.Step 5: Testing the Application:Now, let's test the application. Press F5 or click on the "Start" button to run the application. The form will appear with the ListView control populated with sample data. Click on any item, and you will see a MessageBox displaying the selected name and age.Conclusion:In this article, we learned about the WinForm ListView SelectionIndexChanged event and its significance in a Windows Forms application. We went through the process, step-by-step, of creating a WinForm application, adding a ListView control, populating it with data, and handling the SelectionIndexChanged event. This event allows us to respond to changes in the selection of items in the ListView control and perform appropriate actions based on the user's selection.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

×òÌìŪÁËÒ»ÏÂÎ磬×ÜÊÇÌáʾ¼¤·¢ÁËδ´¦ÀíµÄʼþ¡°PageIndexChanging¡°
Ð޸ķ½·¨£ºÒ»ÒªÔÚgirdview ºóÃæ¼Ó OnPageIndexChanging="GridView1_PageIndexChanging ¶þÒªcs Ò³ÃæÖÐÌí¼Ó
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
DataBind();
}
OKÎÊÌâ½â¾ö£¡£¡
ÏÂÃæµÄÊÇÒ»¸ö±È½ÏÆëÈ«µÄ·ÖÒ³´úÂ룬
protected void Page_Load(object sender, EventArgs e)
{
btnFirst.Text = "×îÊ×Ò³";
btnPrev.Text = "Ç°Ò»Ò³";
btnNext.Text = "ÏÂÒ»Ò³";
btnLast.Text = "×îºóÒ³";
GridView1.DataBind();
ShowPageChangedStatus();
}
private void ShowPageChangedStatus()
{
lblCurrentIndex.Text = "µÚ" + (GridView1.PageIndex + 1).ToString() + "Ò³"; lblPageCount.Text = "×ܹ² " + GridView1.PageCount.ToString() + " Ò³";
}
public void PagerButtonClick(object sender, EventArgs e)
{
string arg = ((LinkButton)sender).CommandArgument.ToString();
switch (arg)
{
case "next":
if (GridView1.PageIndex < (GridView1.PageCount - 1))
{
GridView1.PageIndex += 1;
}
break;
case "prev":
if (GridView1.PageIndex > 0)
{
GridView1.PageIndex -= 1;
}
break;
case "last":
GridView3.PageIndex = (GridView3.PageCount -1);
break;
case "first":
GridView3.PageIndex = 0;
break;
default:
GridView1.PageIndex = System.Convert.ToInt32(arg);
break;
}
GridView1.DataBind();
ShowPageChangedStatus();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
int startIndex;
startIndex = GridView1.PageIndex * GridView1.PageSize;
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
ShowPageChangedStatus();
}
--------------------------------------------------------------------------------
<asp:label id="lblPageCount" runat="server"></asp:label>&nbsp;
<asp:label id="lblCurrentIndex" runat="server"></asp:label>
<asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="first"></asp:linkbutton>&nbsp;
<asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton>&nbsp;
<asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton>&nbsp;
<asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server"
Font-size="8pt" ForeColor="navy" CommandArgument="last"></asp:linkbutton>。

相关文档
最新文档