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.net
<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