Gridview是用于显示和操作来自各种数据源的数据的控件。
我想将默认(网格底部)asp:gridview 分页的位置更改为 gridview 的右侧。是否可以? 如果没有,请建议我是否可以在 gridview 之外保留两个按钮来更改...
你好朋友,我的分页工作正常,但是当对任何列进行排序时,它会在第一页上排序,但在下一页上排序会丢失。 请任何人都可以帮我解决这个问题。 我的标记代码...
我是 C# 和 .NET 的新手,但已经坚持了几天了,我正在使用 MVC 3 (.NET 4.0) Web 应用程序。 我浏览了教程,使用代码 b...
使用 DevxGrid 时处理大型数据库表的最佳解决方案是什么?
我想从asp.net网格转换为devxgrid控件,但我无法确定哪种方法是处理大表的最佳方法(我的意思是SQL中数据行超过1000000的表...
删除 rowDataBound 事件中的 Gridview 行 asp.net c#
我有一个 gridview,它检查 rowDataBound 事件上的一些值。我想根据 rowDataBound 中检查的条件删除一些行。我尝试将所有控件放入面板中并隐藏该面板...
嗨,我想在 GridView 之外有一个 DropDownList 来显示页码列表。 当用户单击页码时,GridView 应转到该页面。 我能够填充
我们设置了 ASP.Net GridView 并包含排序和分页。当用户单击 GridView 列标题链接对数据进行排序时,或者用户单击底部的数字链接时...
我为 gridview 设置了分页,现在当我单击分页器中的另一个页面时,出现一条错误消息,提示 Guid 应包含 32 位数字和 4 个破折号。当弹出友好的错误消息时,我单击...
我已经在网格视图上打开了分页,但是当我尝试更改页面时,回发数据返回为空。 当页面第一次加载时,数据就在那里。 这是我第一次...
我在extjs中有以下分页代码...即使我将其设置为每页5条记录,它仍然显示6...并且第1页(共2页)不显示“1”...我遇到了问题来自sql的数据点击这里去...
我把我的问题放在这里,如屏幕截图所示。 我的代码如下。 .aspx 文件的代码 我把我的问题放在这里,如屏幕截图所示。 我的代码如下。 .aspx 文件的代码 <asp:GridView ID="grid" runat="server" DataKeyNames="EventID" AutoGenerateColumns="false" Width="100%" AllowPaging="True" OnRowDataBound="grid_RowDataBound" PageSize="3" OnRowEditing="grid_RowEditing" OnRowUpdating="grid_RowUpdating" OnRowCancelingEdit="grid_RowCancelingEdit" OnPageIndexChanging="grid_PageIndexChanging"> <PagerSettings FirstPageText="First" LastPageText="Last" Mode="NextPreviousFirstLast" NextPageText="Next" PreviousPageText="Prev" PageButtonCount="3" /> <Columns> <asp:TemplateField> <HeaderTemplate> Client Name </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblClientName" runat="server" Text='<%# Eval("ClientName")%>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtClientName" runat="server" Text='<%# Eval("ClientName")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> Event Name </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblEventName" runat="server" Text='<%# Eval("Name")%>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtEventName" runat="server" Text='<%# Eval("Name")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> Invited Persons </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblNoOfInvitees" runat="server" Text='<%# Eval("No_Of_Invitees")%>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtNoOfInvitees" runat="server" Text='<%# Eval("No_Of_Invitees")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> Total Invitees </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblTotalInvitees" runat="server" Text='<%# Eval("Total_Invitees")%>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtTotalInvitees" runat="server" Text='<%# Eval("Total_Invitees")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> Extra Invitees </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblExtraInvitees" runat="server" Text='<%# Eval("Extra_Invitees")%>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtExtraInvitees" runat="server" Text='<%# Eval("Extra_Invitees")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:TemplateField> <HeaderTemplate> Confirmed </HeaderTemplate> <ItemTemplate> <asp:Label ID="lblConfirmed" runat="server" Text='<%# Eval("Extra_Invitees")%>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID="txtConfirmed" runat="server" Text='<%# Eval("Extra_Invitees")%>'></asp:TextBox> </EditItemTemplate> </asp:TemplateField> <asp:CommandField ShowEditButton="true" HeaderText="Edit" /> <%-- <asp:TemplateField> <HeaderTemplate> Delete </HeaderTemplate> <ItemTemplate> <asp:LinkButton CommandName="Delete" ID="btnDelete" runat="server" Text="Delete" OnClientClick="return validate();" /> <script type="text/javascript" language="javascript"> function validate() { return confirm('Are you sure want to delete this user ?'); } </script> </ItemTemplate> </asp:TemplateField>--%> </Columns> </asp:GridView> </td> </tr> <tr> <td> Showing <asp:Label ID="PageIdxLabel" Text="1" runat="server" /> to <asp:Label ID="PageRowCountLabel" runat="server" /> of <asp:Label ID="PageTotalLabel" runat="server" Text="Label" /> </td> </tr> </table> </ContentTemplate> </asp:UpdatePanel> aspx.cs 文件编码在这里。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using DataLayer; using System.Data.Linq; using System.Web.Extensions; using System.Web.UI.WebControls.WebParts; namespace EventManagerApp { public partial class EventList : System.Web.UI.Page { EventManagerDataContext db = new EventManagerDataContext(); [System.Web.Services.WebMethod] public static string[] GetNames(string prefixText) { EventManagerDataContext db = new EventManagerDataContext(); return db.EMR_EVENTs.Where(n => n.Name.StartsWith(prefixText)).OrderBy(n => n.Name).Select(n => n.Name).ToArray(); //return db.EMR_CLIENTs.Where(n => n.Name.StartsWith(prefixText)).OrderBy(n => n.Name).Select(n => n.Name).ToArray(); } protected void grid_RowEditing(object sender, GridViewEditEventArgs e) { grid.EditIndex = e.NewEditIndex; grdBind(); } protected void grid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { grid.EditIndex = -1; grdBind(); } protected void grid_RowUpdating(object sender, GridViewUpdateEventArgs e) { int EventID = Convert.ToInt32(grid.DataKeys[e.RowIndex].Value.ToString()); string ClientName = ((TextBox)grid.Rows[e.RowIndex].FindControl("txtClientName")).Text; string EventName = ((TextBox)grid.Rows[e.RowIndex].FindControl("txtEventName")).Text; int TotalInvitees = int.Parse(((TextBox)grid.Rows[e.RowIndex].FindControl("txtTotalInvitees")).Text); int ExtraInvitees = int.Parse(((TextBox)grid.Rows[e.RowIndex].FindControl("txtExtraInvitees")).Text); int Confirmed = int.Parse(((TextBox)grid.Rows[e.RowIndex].FindControl("txtConfirmed")).Text); EventManagerDataContext db = new EventManagerDataContext(); var q = (from a in db.EMR_EVENTs join b in db.EMR_CLIENTs on a.ClientID equals b.ClientID where a.EventID == EventID select a).First(); q.EMR_CLIENT.Name = ClientName; q.Name = EventName; q.No_Of_Invitees = TotalInvitees; q.Extra_Invitees = ExtraInvitees; q.Total_Invitees = ExtraInvitees + TotalInvitees; db.SubmitChanges(); grid.EditIndex = -1; grdBind(); } protected void Page_Load(object sender, EventArgs e) { lblwelcometext.Text = (string)(Session["name"]); try { if (!IsPostBack) { grdBind(); bindClients(); } } catch (Exception ex) { throw ex; } } public class DALClass { private static EventManagerDataContext db = new EventManagerDataContext() { CommandTimeout = 36000 }; public static List<EMR_CLIENT> GetClients() { return db.EMR_CLIENTs.ToList(); } } protected void bindClients() { drpClient.DataSource = DALClass.GetClients(); drpClient.DataTextField = "Name"; drpClient.DataValueField = "ClientID"; drpClient.DataBind(); string Name = drpClient.SelectedItem.Value; } protected void grdBind() { try { EventManagerDataContext db = new EventManagerDataContext(); if (txtSearchEvent.Text == "") { var q = from a in db.EMR_EVENTs join b in db.EMR_CLIENTs on a.ClientID equals b.ClientID select new { ClientName = b.Name, ClientID = a.ClientID, Name = a.Name, No_Of_Invitees = a.No_Of_Invitees, Extra_Invitees = a.Extra_Invitees, Total_Invitees = a.Extra_Invitees + a.No_Of_Invitees, EventID = a.EventID }; grid.DataSource = q.ToList(); grid.PageSize = int.Parse(drpPageSize.SelectedValue); grid.DataBind(); } else { var data = from a in db.EMR_EVENTs join b in db.EMR_CLIENTs on a.ClientID equals b.ClientID where a.Name.StartsWith(txtSearchEvent.Text.Trim()) select new { ClientName = b.Name, ClientID = a.ClientID, Name = a.Name, No_Of_Invitees = a.No_Of_Invitees, Extra_Invitees = a.Extra_Invitees, Total_Invitees = a.Extra_Invitees + a.No_Of_Invitees, EventID = a.EventID }; grid.DataSource = data.ToList(); grid.PageSize = int.Parse(drpPageSize.SelectedValue); grid.DataBind(); } } catch { throw; } } protected void txtSearchEvent_TextChanged(object sender, EventArgs e) { grdBind(); } protected void drpPageSize_SelectedIndexChanged(object sender, EventArgs e) { grid.PageSize = int.Parse(drpPageSize.SelectedItem.Text); grdBind(); } protected void drpClient_SelectedIndexChanged(object sender, EventArgs e) { if (drpClient.SelectedIndex == 0) { grid.PageSize = int.Parse(drpPageSize.SelectedValue); grdBind(); } else { var q = from a in db.EMR_EVENTs join b in db.EMR_CLIENTs on a.ClientID equals b.ClientID where a.ClientID == int.Parse(drpClient.SelectedValue.ToString()) select new { ClientName = b.Name, ClientID = a.ClientID, Name = a.Name, No_Of_Invitees = a.No_Of_Invitees, Extra_Invitees = a.Extra_Invitees, Total_Invitees = a.Extra_Invitees + a.No_Of_Invitees, EventID = a.EventID }; grid.DataSource = q.ToList(); grid.PageSize = int.Parse(drpPageSize.SelectedValue); grid.DataBind(); } } protected void grid_PageIndexChanging(object sender, GridViewPageEventArgs e) { grid.PageIndex = e.NewPageIndex; grdBind(); } protected void grid_RowDataBound(object sender, GridViewRowEventArgs e) { EventManagerDataContext db = new EventManagerDataContext(); var q = from a in db.EMR_EVENTs join b in db.EMR_CLIENTs on a.ClientID equals b.ClientID select new { ClientName = b.Name, ClientID = a.ClientID, Name = a.Name, No_Of_Invitees = a.No_Of_Invitees, Extra_Invitees = a.Extra_Invitees, Total_Invitees = a.Extra_Invitees + a.No_Of_Invitees, EventID = a.EventID }; PageTotalLabel.Text = q.Count().ToString(); PageRowCountLabel.Text = grid.Rows.Count.ToString(); // PageIdxLabel.Text = grid.PageIndex.ToString(); } } } 所以我的问题是我想根据单击下一个和上一个按钮更新 pageindex 值。 这是我的问题的解决方案,我自己解决了。 感谢 stackoverflow。 int pagetotal = q.Count(); int pagerowcount = (grid.PageIndex * grid.PageSize) + grid.Rows.Count; PageIdxLabel.Text = ((grid.PageIndex * grid.PageSize) + 1).ToString() + "to " + Convert.ToString(pagerowcount) + "of" + (pagetotal).ToString();
GridView allowedPaging= true 不显示页码 2 和 3。显示 14567
我有一个需要分页的网格视图。当我allowPaging=true时,它显示145678910......它不会显示第2页和第3页。如果我尝试将模式更改为NextPreviousFirstLast,它只显示“Next”......
如何在asp.net中通过分页保留gridview内控件的状态?
我在这个GridView中添加了一个TextBox的验证,但是这个验证仅适用于GridView的当前页面(它不适用于GridV的上一页和下一页...
ASP.NET Gridview 分页和排序事件无法正常工作
我有一个网格视图,我将一些票证数据加载到其中。 根据用户操作,此 gridview 将加载不同的 sqldatasource 并重新显示数据。 这是 gridvie 的标记...
UpdatePanel 内的 GridView PAGING 不适用于第二页更改,为什么?
我有两个更新面板,其中一个包含网格视图。问题是分页仅在第一次才能正常工作。 这是标记: 我有两个更新面板,其中一个包含网格视图。问题是分页仅在第一次才能正常工作。 这是标记: <asp:UpdatePanel ID="upAnswers" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> <ContentTemplate> <asp:GridView ID="gvAnswers" runat="server" CssClass="gv" Width="100%" ShowHeader="false" AllowPaging="True" PageSize="2" EnableSortingAndPagingCallbacks="true" OnPageIndexChanging="gvAnswers_PageIndexChanging" AutoGenerateColumns="False" AlternatingRowStyle-BackColor="#eee"> <Columns> <asp:TemplateField HeaderText="Questions" ShowHeader="False"> <ItemTemplate> <asp:Label ID="lblQuestions" onclick=<%# Eval("FaqID", "$('.lblAnswers_{0}').toggle('fast')") %> CssClass="block" runat="server" Text='<%# Eval("Title") %>'></asp:Label> <asp:Panel ID="pnlS1" runat="server" CssClass='<%# Eval("FaqID", "lblAnswers_{0}") %>' style="display: none;"> <asp:Label ID="Label1" runat="server" Text='<%# Eval("Question") %>' CssClass="block bold"></asp:Label> <asp:Label ID="lblAnswers" runat="server" Text='<%# Eval("Answer") %>'></asp:Label> </asp:Panel> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </asp:UpdatePanel> <asp:UpdateProgress ID="upgAnswers" runat="server" AssociatedUpdatePanelID="upAnswers" DisplayAfter="300"> <ProgressTemplate> <div id="uiBlock" class="uiBlock"> </div> </ProgressTemplate> </asp:UpdateProgress> 以及背后的代码: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { GetAnsweredPublicFAQs(); } } protected void GetAnsweredPublicFAQs() { DataSet ds = cFAQs.getAnsweredPublicFAQs(); gvAnswers.DataSource = ds; gvAnswers.DataBind(); } protected void gvAnswers_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvAnswers.PageIndex = e.NewPageIndex; GetAnsweredPublicFAQs(); gvAnswers.DataBind(); upAnswers.Update(); } 作为参考,我使用 ASP.NET 4.0 C#。 任何善意的帮助将不胜感激。 问候, 卡多 将 UpdatePanel 声明更改为如下所示: <asp:UpdatePanel ID="upAnswers" runat="server" UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="gvAnswers" EventName="PageIndexChanging" /> 每当我遇到这些 UpdatePanel 的问题时,我发现明确声明触发器会很有帮助。 特别是当您使用“非默认”事件触发 AsyncPostBack 时(SelectedIndexChanged 是 GridView 的“默认”事件)。 此外,ChildrenAsTriggers 默认为 true,因此我从标记中删除了它。
ASP.NET 4.5 GridView.AllowCustomPaging 属性如何使这个变得更简单?
我有一个 ASP.NET 4 GridView 控件,它使用这两篇文章中讨论的逻辑: 高效地分页大量数据 对自定义分页数据进行排序 ASP.NET 4.5 GridView 如何实现。
我发现 ASP.NET 4.5 和 4.5.1 版本中的 GridView 分页器存在问题。从 .NET 2 - 4 开始我从未遇到过这样的问题。 到目前为止,我有一个网格视图,我正在用 d 填充......
我有一个相当简单的 asp 网格视图,绑定到对象数据源。 我想要的是点击按钮时的 gridview 更新,其结果是动态取决于文本中的值......
我目前正在编写一些代码,负责在网格视图中对数据进行排序和分页。 我现在正在尝试实现排序箭头(列标题旁边的向上/向下箭头),但我没有su...
我试图通过允许用户在文本框中输入页码并单击文本为“GO”的按钮来实现“转到”页面。 .aspx 代码是; 我试图通过允许用户在文本框中输入页码并单击文本为“GO”的按钮来实现“GO TO”页面。 .aspx 代码是; <asp:Label ID="lblGoToPage" runat="server" Text="Go To Page : "></asp:Label> <asp:TextBox ID="txtGoToPage" runat="server" Width="47px"></asp:TextBox> <asp:Button ID="btnGo" runat="server" Text="Go" OnClick="btnGo_Click" /> 并且 .cs 代码是; protected void btnGo_Click(object sender, EventArgs e) { GridView1.PageIndex = Convert.ToInt16(txtGoToPage.Text); txtGoToPage.Text = ""; } 上面的这些代码行给出了但不是所需的代码。无法弄清楚我哪里出了问题。任何帮助将不胜感激。预先感谢。 更改页面索引后需要重新绑定网格。 protected void btnGo_Click(object sender, EventArgs e) { GridView1.PageIndex = Convert.ToInt16(txtGoToPage.Text) -1; //since PageIndex starts from 0 by default. txtGoToPage.Text = ""; GridView1.DataBind() }