本文介绍了在Gridview中绑定7000条记录需要更多时间。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
-SA
What you are trying to do is simply one big abuse. What user will want to see 7000 records? You need to create some alternative design. Say, the query can be designed to allow only limited number of records at a time. One very usual solution is paging:
How To Implement Paging in GridView Control in ASP.NET[^],
www.c-sharpcorner/UploadFile/rohatash/gridview-paging-sample-in-Asp-Net[^].
—SA
我正在使用gridview绑定7000条记录,并使用文本框搜索记录需要更多时间才能加载。 下面我附上了编码 Javascript
I am using gridview to bind 7000 records and am using textbox to search records it s took more time to load. Below i have attached Coding Javascript
function BindMembersDetails() { // to call c# funstion __doPostBack('<%=lnktxtsearch.ClientID %>', ''); }
Asp <asp:TextBox type="text" placeholder="Search..." class="textbox" runat="server" ID="txtSearchKey" onkeyup="BindMembersDetails()" autofocus></asp:TextBox></div> <asp:GridView ID="grdMemDasboard" runat="server" class="grid grdHouseKeeping" AutoGenerateColumns="false" CellPadding="0" BorderColor="#cccccc" CellSpacing="0" BorderWidth="0" EmptyDataText="No Items Added" onsorting="grdDasboard_Sorting" AllowSorting="true"> <%--AllowPaging="true" OnPageIndexChanging="grdItemMaster_PageIndexChanging" PagerSettings-Position="Bottom" PageSize="40" --%> <Columns> <asp:TemplateField ItemStyle-CssClass="gridCourse" HeaderStyle-CssClass="gridCourse gridCourseHeader" HeaderText="Membership Id" Visible="false"> <ItemTemplate> <asp:LinkButton runat="server" ID="lblMembershipId" Text='<%#Eval("MembershipID") %>' ></asp:LinkButton> </ItemTemplate> </asp:TemplateField> etc..... </Columns> <%-- <PagerSettings FirstPageText="First" Mode="NumericFirstLast" LastPageText="Last" PageButtonCount="7" NextPageText="Next" PreviousPageText="Previous" />--%> </asp:GridView> // Repeater for paging <asp:Repeater ID="rptPager" runat="server" > <ItemTemplate> <asp:LinkButton ID="lnkPage" runat="server" Text = '<%#Eval("Text") %>' CommandArgument = '<%# Eval("Value") %>' Enabled = '<%# Eval("Enabled") %>' OnClick = "Page_Changed"></asp:LinkButton> <%--OnClick = "Page_Changed"--%> <asp:HiddenField ID="hdnValue" runat="server" Value='<%# Eval("Value") %>'/> </ItemTemplate> </asp:Repeater> </div>
Stored Procedure SELECT ROW_NUMBER() OVER(ORDER BY MM.MemberID DESC) AS RowNumber, MCM.CategoryName as MembershipName, --(case when ISNULL(MCM.IsCorporate,0) = 0 then MM.MemberCode when ISNULL(MCM.IsCorporate,0) = 1 then (select t.memcode from @temp t where t.memeberid=mm.MemberID ) end) as MemberCode --MM.MemberCode MD.MemberCode as MemberCode ,MCM.CategoryID ,MM.MemberID as MembershipID ,GU.CardName as PrimaryMember ,(select Count(memberid) from Mem.MemberDetails MD where MD.MemberID=MM.MemberID) as TotalPax --case when isnull(MCM.IsCorporate,0)=0 then '' else MCM.NoOfPax end as TotalPax ,case when MM.Approverflag=1 then 'Approved' when MM.Approverflag=2 then 'Rejected' else 'Pending' end as [Approval] ,[MembershipCategoryID] ,CONVERT(varchar(50),ExpiryDate,103) as ExpiryDate ,[SecurityDeposit] ,[EntranceFee] ,[CorporateName] ,[TotalAmount] ,ISNULL(md.[Balance],0.00) as Balance , MCM.IsCorporate ,(case when ISNULL(MCM.IsCorporate,0) = 1 then MM.CorporateID when ISNULL(MCM.IsCorporate,0) = 0 then '0' end) as CorporateID --MM.MemberID , MM.IsActive as IsActive , MD.MemberCode as memcode --,(Select Description from Mem.MemberShipStatusMaster where StatusCode=MM.StatusCode) as Status ,case when MM.[IsActive]=1 then 'Active' else 'In-Active' end as [Status] INTO #Results FROM [Mem].[MemberMaster] MM inner join [Mem].MembershipCategoryMaster MCM on MCM.CategoryID=MM.MembershipCategoryID inner join [Mem].MemberDetails MD on MD.MemberID=MM.MemberID inner join [dbo].Guest Gu on GU.guestID=MD.GuestID ORDER BY MD.MemberID desc SELECT @RecordCount = COUNT(*) FROM #Results SELECT * FROM #Results WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1 DROP TABLE #Results
推荐答案
你要做的只是一个大滥用。用户希望看到7000条记录?您需要创建一些替代设计。比如说,查询可以设计为一次只允许有限数量的记录。一个非常常见的解决方案是分页: 如何在ASP.NET中的GridView控件中实现分页 [ ^ ], www.c-sharpcorner/UploadFile/rohatash/gridview-paging-sample-in-Asp-净 [ ^ ]。
更多推荐
在Gridview中绑定7000条记录需要更多时间。
发布评论