gridview 相关问题

Gridview是用于显示和操作来自各种数据源的数据的控件。

分页无法正常工作

我已经在网格视图上打开了分页,但是当我尝试更改页面时,回发数据返回为空。 当页面第一次加载时,数据就在那里。 这是我第一次...

回答 1 投票 0

带有网格面板的Extjs分页工具栏不起作用

我在extjs中有以下分页代码...即使我将其设置为每页5条记录,它仍然显示6...并且第1页(共2页)不显示“1”...我遇到了问题来自sql的数据点击这里去...

回答 1 投票 0

我的 gridview 的分页功能不起作用

我把我的问题放在这里,如屏幕截图所示。 我的代码如下。 .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();

回答 1 投票 0

GridView allowedPaging= true 不显示页码 2 和 3。显示 14567

我有一个需要分页的网格视图。当我allowPaging=true时,它显示145678910......它不会显示第2页和第3页。如果我尝试将模式更改为NextPreviousFirstLast,它只显示“Next”......

回答 2 投票 0

如何在asp.net中通过分页保留gridview内控件的状态?

我在这个GridView中添加了一个TextBox的验证,但是这个验证仅适用于GridView的当前页面(它不适用于GridV的上一页和下一页...

回答 1 投票 0

ASP.NET Gridview 分页和排序事件无法正常工作

我有一个网格视图,我将一些票证数据加载到其中。 根据用户操作,此 gridview 将加载不同的 sqldatasource 并重新显示数据。 这是 gridvie 的标记...

回答 1 投票 0

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,因此我从标记中删除了它。

回答 1 投票 0

ASP.NET 4.5 GridView.AllowCustomPaging 属性如何使这个变得更简单?

我有一个 ASP.NET 4 GridView 控件,它使用这两篇文章中讨论的逻辑: 高效地分页大量数据 对自定义分页数据进行排序 ASP.NET 4.5 GridView 如何实现。

回答 1 投票 0

ASP.NET 4.5 GridView:最后一页的回发

我发现 ASP.NET 4.5 和 4.5.1 版本中的 GridView 分页器存在问题。从 .NET 2 - 4 开始我从未遇到过这样的问题。 到目前为止,我有一个网格视图,我正在用 d 填充......

回答 2 投票 0

为什么我的 ASP GridView 分页不起作用?

我有一个相当简单的 asp 网格视图,绑定到对象数据源。 我想要的是点击按钮时的 gridview 更新,其结果是动态取决于文本中的值......

回答 1 投票 0

Gridview 列标题中的向上/向下排序箭头

我目前正在编写一些代码,负责在网格视图中对数据进行排序和分页。 我现在正在尝试实现排序箭头(列标题旁边的向上/向下箭头),但我没有su...

回答 2 投票 0

转到 GridView 分页功能中的特定页码

我试图通过允许用户在文本框中输入页码并单击文本为“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() }

回答 1 投票 0

在 GridView 中通过分页保持排序

我目前正在尝试编写代码,以便在更改 GridView 上的页面时保持排序首选项。 我当前的代码运行良好,可以根据用户的排序选择对数据进行排序。 ...

回答 1 投票 0

ObjectDataSource 分页 -> GridView 中没有显示数据

我有一个objectdatasource和一个gridview配置如下(使用VS2008 w/.NET3.5): 我有一个对象数据源和一个网格视图,配置如下(使用 VS2008 w/.NET3.5): <asp:ObjectDataSource ID="odsMainData" runat="server" EnablePaging="True" OldValuesParameterFormatString="original_{0}" SelectMethod="GetMainData" TypeName="ErrorViewer.Model.ErrorViewModel" SelectCountMethod="CountMainData"> <SelectParameters> <asp:Parameter Name="maximumRows" Type="Int32" /> <asp:Parameter Name="startRowIndex" Type="Int32" /> </SelectParameters> </asp:ObjectDataSource> <asp:GridView ID="grdMainData" runat="server" AllowPaging="True" DataSourceID="odsMainData" PageSize="15" AllowSorting="True"> </asp:GridView> 网格视图或数据源的代码后面没有事件处理程序或其他代码 所以底层类“ErrorViewModel”中有方法: 公共数据表 GetMainData() { var dt = 提供者.MainData(); myMainData = dt; 返回dt; } public DataTable GetMainData(int maximumRows, int startRowIndex) { var dt = provider.MainData(); myMainData = dt; return dt; } public long CountMainData() { var count = provider.GetMainDataCount(); return count; } public long CountMainData(int maximumRows, int startRowIndex) { var count = CountMainData(); return count; } 我想要的是:自定义服务器端分页。 问题是什么: 当我在数据源中设置EnablePaging=true时,gridview中将不会显示任何数据。如果EnablePaging设置为false,则有数据显示。正如您所看到的,这两种检索数据的方法将执行完全相同的操作。 调试显示,使用 EnablePaging=true 时返回了一些行。 另一个奇怪的事情(使用EnablePaging=true): 在 GetMainData 中,maximumRows 设置为 15,startRowIndex 设置为 0 在 CountMainData 中,maximumRows 设置为 0,startRowIndex 设置为 0 我已经在另一个项目中实现了这种类型的自定义分页并进行了相同的配置 - 但这次它存在于这种奇怪的行为中。我的实现有什么问题?我只是忘记了一个小设置吗?有什么建议吗? 错误是 CountMainData 没有返回整数。 在我更改 CountMainData 以返回整数后,一切正常。

回答 1 投票 0

ASP.NET - gridview 中的分页问题

我在左侧有一个列表: 电脑 老鼠 键盘 ETC 我还有一个网格视图,当我按下其中之一时就会出现。 问题出在分页上:没有出现 如果我按电脑...

回答 2 投票 0

如何右对齐 GridView 分页按钮?

我无法让我的分页按钮:“<< < >>>”右对齐。 这是我的网格视图: 我无法让我的分页按钮:“<< < > >>”向右对齐。 这是我的 GridView: <asp:GridView ID="GridView1" ShowHeader="false" AllowPaging="true" PageSize="2" AutoGenerateColumns="false" Width="100%" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> foo </ItemTemplate> <ItemStyle CssClass="blah" /> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> bar </ItemTemplate> <ItemStyle CssClass="pluh" /> </asp:TemplateField> </Columns> <PagerStyle CssClass="gridpager" HorizontalAlign="Right" /> <PagerSettings Mode="NextPreviousFirstLast" FirstPageText="<<" PreviousPageText="<" NextPageText=">" LastPageText=" >>" Position="Bottom" /> </asp:GridView> CSS 样式: .gridpager, .gridpager td { padding-left: 5px; text-align: right; } 如果我删除 PageStyle CssClass 并在 PagerSettings 上使用 HorizontalAlign="Right" ,它可以工作,但是我没有得到我需要的填充。 并且像我的示例一样指定 CssClass 和 HorizontalAlign 不起作用。 我需要做什么? 谢谢! 看起来是因为 Web 表单输出的标记很糟糕。 寻呼机被创建为 td 中的表。 我可以用这个 CSS 让它工作: .gridpager table { float: right; } 编辑:很高兴你明白了。 我不知道你是否想用纯 CSS 来做到这一点。 我也不太喜欢float方法。 编辑2:看起来渲染的网格在您使用 align 时使用用于寻呼机的 td 中的 <PagerStyle HorizontalAlign="Right" /> 属性 嗯,我觉得有点傻,但事实证明我只需要从我的风格中删除“text-align:right”。 感谢您的阅读! 你可以做一个简单的 CSS 技巧: .gridpager td table{ margin-right:20px; } 这应该可以解决问题。

回答 3 投票 0

ASP.Net GridView 不显示页码

我已经阅读了几篇文章和教程,但我就是不明白这一点。 一切基本上都在说:“哦,只要打开AllowPaging,就完成了!” 当我这样做时,是的,我可以看到 p...

回答 3 投票 0

iPhone sdk 中带有分页的图像网格[已关闭]

我想在滚动视图中分页显示图像网格。所有图像都来自服务器。 我知道使用带有分页的滚动视图。但是我们如何在带有分页的滚动视图中显示图像。 我能想到...

回答 2 投票 0

asp.net gridview动态绑定

我有一个GridView, 在后面的代码中, protected void Page_Load(对象发送者,EventArgs e) { SqlDataSource2.

回答 5 投票 0

gridview 分页不起作用

我有一个gridview控件,但是,当我单击页码时,出现错误“找不到页面”。我在这里缺少什么? 我的代码是: 我有一个 gridview 控件,但是,当我单击页码时,出现错误“找不到页面”。我在这里缺少什么? 我的代码是: <asp:GridView ID="gvEmployeeResults" Width="900px" CellSpacing="1" CellPadding="2" AutoGenerateColumns="false" OnRowDataBound="gvEmployeeResults_OnRowDataBound" runat="server" AllowPaging="true" > <Columns> <asp:TemplateField HeaderText="Last Name, First Name" ItemStyle-Wrap="true" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left"> <ItemTemplate> <asp:LinkButton id="lbtnEmployeeName" OnCommand="EditEmployee_Command" CommandArgument='<%#Eval("EmployeeNum")%>' CommandName="EmployeeName" Visible="true" runat="server" ToolTip="Click to edit Employee."><%# DataBinder.Eval(Container.DataItem, "empLastName") + ", " + DataBinder.Eval(Container.DataItem, "empFirstName")%></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="empAddrLine1" ControlStyle-Width="225px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="Address" /> <asp:BoundField DataField="empCity" ControlStyle-Width="120px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="City" /> <asp:BoundField DataField="empState" ControlStyle-Width="50px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="State" /> <asp:BoundField DataField="empPostalCode" ControlStyle-Width="100px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="Zip" /> <asp:BoundField DataField="empDOB" ControlStyle-Width="100px" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="left" HeaderText="Date Of Birth" /> </Columns> </asp:GridView> protected void BindGridview() { corpEmployee.Employee emp = new corpEmployee.Employee(); emp.empLastName = tboxLastName.Text.Trim(); emp.empFirstName = tboxFirstName.Text.Trim(); emp.empDOB = tboxDateOfBirth.Text.Trim(); gvEmployeeResults.DataSource = corpEmployeeMgr.GetEmployees(emp); gvEmployeeResults.DataBind(); } protected void gvEmployeeResults_OnRowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { if (e.Row.Cells[0].Text.Contains("nbsp;")) { e.Row.Cells[0].Text = e.Row.Cells[0].Text.Replace("&lt;", "<").Replace("&gt;", ">").Replace("&amp;", "&"); } } else { return; } } protected void gvEmployeeResults_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvEmployeeResults.PageIndex = e.NewPageIndex; gvEmployeeResults.DataBind(); } 必须使用EnableViewstate= true并绑定一次并使用IsPostback。 (页面索引) 1. EnableViewState=true for your control 2. In the page load If(! IspostBack ) { Bind().... } And set PageIndex 您必须在 BindGridview() 事件处理程序中调用 PageIndexChanging。 protected void gvEmployeeResults_PageIndexChanging(object sender, GridViewPageEventArgs e) { gvEmployeeResults.PageIndex = e.NewPageIndex; BindGridview(); }

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.