gridview 相关问题

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

为什么我的 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

GridView 分页问题

我正在使用gridview控件并手动执行分页和排序。 下面是分页的方法: protected void gdvMainList_PageIndexChanging(对象发送者,GridViewPageEventArgs e) { ...

回答 3 投票 0

.NET Gridview Paging 在以下页面上显示不同的内容

我在启用分页的页面中有一个GridView(未启用排序,未使用)。分配了 OnRowDataBound 和 OnPageIndexChanged 事件。 我在启用分页的页面中有一个GridView(未启用排序,未使用)。 OnRowDataBound 和 OnPageIndexChanged 事件已分配。 <asp:GridView ShowHeader="False" ID="GV1" runat="server" AutoGenerateColumns="False" OnRowDataBound="gridView_RowDataBound" DataSourceID="SqlDataSource1" GridLines="None" CellPadding="0" PageSize="25" AllowPaging="True" OnPageIndexChanging="GV1_PageIndexChanging"> 数据源在 gridview 下方分配为: <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:my_connectionstring %>"></asp:SqlDataSource> OnRowDataBound 用于以格式化的方式显示内容。我认为这不会造成任何问题: Protected Sub gridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)..... PageIndexChanging 定义如下: Protected Sub GV1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) GV1.PageIndex = e.NewPageIndex GV1.DataBind() End Sub 在 Page_Load 部分中,这是我填充数据源的方式。它来自于字符串 tempSqlStr 中构造的自定义查询: SqlDataSource1.SelectCommand = tempSqlStr If Not Page.IsPostBack Then GV1.DataBind() End If 一切似乎都正常,我得到了按 25 条记录分页的结果,我可以在页面之间移动。但我认识到,当我在页面之间移动时,页面内容正在发生变化。记录数量不会改变,但我可以在第二页再次看到我在第一页上看到的记录,当我移回第一页,然后再次移至第二页时,第二页内容发生变化,我看到一组不同的记录。 我已将 tempSqlStr 值打印到所有页面,它在所有页面上都是相同的(它不在“not page.ispostback”部分)。 难道是因为我在Page_Load部分构造了tempSqlStr而GV1_PageIndex_Changing看不到该值?如果是这种情况为什么下面的页面显示记录? 任何评论表示赞赏。谢谢你。 问题很可能是您没有对返回的结果进行排序,这就是原因。执行你的select语句5次,看看结果是否一样就知道是不是这个了。如果是,则在您的查询中添加订单依据。让我知道这是否解决了您的问题,否则我们可以进一步研究......

回答 1 投票 0

如何在 Gridview 分页器中将 NextPageText/NextPageUrl 从“...”更改为“Next”?

以下是我对 GridView 分页器的标记 以下是我的 GridView 寻呼机标记 <PagerSettings Mode="NumericFirstLast" PageButtonCount="3" FirstPageImageUrl="~/images/First.jpg" LastPageImageUrl="~/images/Last.jpg" NextPageImageUrl="~/images/Next.jpg" PreviousPageImageUrl="~/images/Prev.jpg" /> 但是,当我运行它时,我得到默认的“...”作为链接按钮来导航到下一页和上一页。第一个和最后一个按钮导航链接按钮正确显示为图像。 有人可以告诉我出了什么问题吗? 编辑1 我也使用 NextPageText 得到相同的结果 我也遇到了同样的问题,我用这段代码解决了: Protected Sub grdPatsCliente_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles grdPatsCliente.RowCreated If e.Row.RowType = DataControlRowType.Pager Then Dim i As Integer = 0 For Each ctl As Control In e.Row.Cells(0).Controls(0).Controls(0).Controls i += 1 If ctl.Controls(0).GetType.ToString = "System.Web.UI.WebControls.DataControlPagerLinkButton" Then Dim lnk As LinkButton = CType(ctl.Controls(0), LinkButton) If lnk.Text = "..." Then If i < 3 Then lnk.Text = "Prev" Else lnk.Text = "Next" End If End If End If Dim x As String = ctl.ClientID Next End If End Sub 默认的 Gridview 分页器始终在下一个和上一个链接上呈现“...”。使用此代码,我将“...”替换为我的文本(如果您使用FontsAwesome,也可以使用“”等 HTML) C#代码: protected void grdPatsCliente_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Pager) { int i = 0; foreach (Control ctl in e.Row.Cells[0].Controls[0].Controls[0].Controls) { i++; if (ctl.Controls[0].GetType().ToString() == "System.Web.UI.WebControls.DataControlPagerLinkButton") { LinkButton lnk = (LinkButton)ctl.Controls[0]; if (lnk.Text == "...") { if (i < 3) { lnk.Text = "Prev"; } else { lnk.Text = "Next"; } } } } } }

回答 1 投票 0

分页控件在 Gridview 中不可见

我在项目中为 gridview 设置了AllowPaging = True。 当我绑定它时,我知道我返回了 100 多行,并且 PageSize 设置为 50。但是我在底部没有看到任何分页控件(

回答 1 投票 0

GridView 分页无法在 ASP.NET 中使用 jQuery

我正在使用使用jquery ajax加载的asp.net页面。在此页面中,我使用 Gridview 显示值列表,如下所示 我正在使用使用 jquery ajax 加载的 asp.net 页面。在此页面中,我使用 Gridview 显示值列表,如下所示 <asp:GridView ID="GVPrograms" runat="server" AutoGenerateColumns="false" onrowcommand="GVPrograms_RowCommand" AllowPaging="true" BackColor="#f5f5f5" BorderColor="#ffffff" PageSize="2" OnPageIndexChanging="GVPrograms_PageEventHandler" GridLines="None"> <Columns> <asp:TemplateField HeaderText="Video"> <ItemTemplate> <div style="float: left; width: 120px" class="play-video"> <a href="Program.aspx?id=<%#Eval("ID") %>" id='<%#Eval("ID") %>'> <img src='<%# GetUrl(Eval("ID")) %>' width='100' height='100' style="" alt="play" /> </a> </div> </asp:TemplateField> </Columns> </asp:GridView> 我已经在 PageEventHandler 方法中处理了分页并且工作正常。但是,每当页面首次加载时以及当我单击 gridview 内的任何链接时,都会使用以下脚本加载 Program.aspx 页面 $(".play-video a").click(function () { $("#content-placeholder").load(this.href); //alert(this.id); return false; }); 现在,问题是每当我单击下一页(例如第 2 页)并单击任何链接时,Program.aspx 就会显示在新窗口中。那么,如何使用上面的 jquery 脚本使其仍然加载到同一页面中? 我一直在寻找是否有任何解决方法,但找不到任何解决方法。我感谢你的帮助。 当您使用 UpdatePanel 时,您需要在每次更新时重新初始化与此 UpdatePanel 的内容一起使用的 javascript,这是因为您更改了 Dom 结构,并且之前的 javascript 不再工作。 为此,您可以使用 UpdatePanel 提供的功能,您的代码如下: <script type="text/javascript"> // this is your function that we must call on page load // and after updatepanel updates. function InitMyLink() { $(".play-video a").click(function () { $("#content-placeholder").load(this.href); return false; }); } // now I capture the two functions that called when UpdatePanel is updated var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_initializeRequest(InitializeRequest); prm.add_endRequest(EndRequest); function InitializeRequest(sender, args) { } // this is called after update panel completes the update function EndRequest(sender, args) { InitMyLink(); } // this is called on first page load $(document).ready(function() { InitMyLink(); }); </script>

回答 1 投票 0

分页和性能

问: 我想问一下:分页。 .net 中的分页功能是否会产生任何性能差异,我的意思是,有时我有大量数据,如果我想将这些数据绑定到 gridview 上,例如,是“p...

回答 2 投票 0

Ext JS 4:更新网格的分页工具栏

如果其底层存储发生变化,我正在尝试更新分页工具栏的信息。 假设我有以下代码。 Ext.Loader.setConfig({ 启用:真 }); Ext.Loader.setPath('Ext.ux', '

回答 1 投票 0

应用程序无法在离线资源管理器中运行

我在sharepoint平台上使用asp.net构建了一个应用程序,但是gridview中的分页和排序功能无法在Offline Explorer(Metaproduct)环境中正常运行,一个...

回答 1 投票 0

RowDataBound事件中的一行与Gridview的分页机制冲突

这是我填充 GridView 控件的方式。 我是从代码隐藏中执行此操作,而不是从 .aspx 前端执行此操作。 以下是我所拥有的内容的极其缩写的版本: 私人v...

回答 1 投票 0

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