如何在C#中创建动态服务器控件,以及如何将更多记录从数据库附加到repeater控件,而无需再次加载所有记录
我在一个页面上有一个repeater控件,我用数据库中的10条记录填充它。页面上有一个“更多”按钮;两者都在更新面板内。“更多”按钮将从数据库中取出接下来的10条记录。我只想将新的10条记录附加到中继器中现有的10条记录上。我该怎么做 我需要它像Twitter和Facebook一样工作,加载服务器端控件,同时在不分页的情况下向repeater控件添加新记录 这是我的.aspx代码:如何在C#中创建动态服务器控件,以及如何将更多记录从数据库附加到repeater控件,而无需再次加载所有记录,c#,sql,asp.net,C#,Sql,Asp.net,我在一个页面上有一个repeater控件,我用数据库中的10条记录填充它。页面上有一个“更多”按钮;两者都在更新面板内。“更多”按钮将从数据库中取出接下来的10条记录。我只想将新的10条记录附加到中继器中现有的10条记录上。我该怎么做 我需要它像Twitter和Facebook一样工作,加载服务器端控件,同时在不分页的情况下向repeater控件添加新记录 这是我的.aspx代码: <asp:repeater id="repStd" runat="server" onitemcommand
<asp:repeater id="repStd" runat="server" onitemcommand="repStd_ItemCommand"
onitemdatabound="rptCore_ItemDataBound">
<HeaderTemplate>
<asp:Label ID="lnkStdName" runat="server" CommandName="Name"
CssClass="hrefclass">Name</asp:Label>
</HeaderTemplate>
<ItemTemplate>
<div class="headParent" id="STHeader" runat="server">
<asp:Label ID="lblStdName" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Project_Name") %>'></asp:Label>
</div>
<div class="contentParent" id="STcontent" runat="server">
<asp:UpdatePanel ID="UpdatePanelST" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
<ContentTemplate>
<cc1:AsyncFileUpload ID="STAsyncFileUpload_Pdf" runat="server" Width="500px"
CompleteBackColor="White" OnClientUploadError="STuploadError" OnClientUploadComplete="STuploadComplete"
OnClientUploadStarted="STUploadedStartedPdfFile" UploadingBackColor="#CCDDEE"
UploaderStyle="Modern" ThrobberID="STinProgress"
OnUploadedComplete="STPdf_FileUploadComplete" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</ItemTemplate>
</asp:repeater>
根据您的要求,通过调用
table/div
structure代替中继器,使用for/Foreach
循环
对于逻辑,从上一个索引中调用10条记录,并将其添加到表/div
这将解决您的问题,而且非常有效,不会产生任何性能问题
例如,遵循下面的逻辑-
DataTable dt = GetYourRows();
String html = "";
foreach(DataRow dr in dt.Rows)
{
html += "<div>"+dr["column"].ToString();+"</div>";
}
DataTable dt=GetYourRows();
字符串html=“”;
foreach(数据行dr在dt.行中)
{
html+=“”+dr[“列”].ToString();+“”;
}
然后在现有html代码中的任何地方使用
html
,从您的描述中看不太清楚,但听起来您需要使用一些Ajax代码来调用get_10_more函数。@MRS检查我的答案,它将解决您的问题。@Shirish我需要加载服务器端控件,同时向中继器添加新记录control@MRS在repeator上,您不能在不加载所有数据的情况下进行加载,但您可以通过我提供的ajax答案进行加载calling@Shirish根据您的回答,我只能创建html控件,但我需要使用服务器端controls@MRS对于参考尝试此-@MRS作为参考尝试此-@MRS作为参考尝试此-
DataTable dt = GetYourRows();
String html = "";
foreach(DataRow dr in dt.Rows)
{
html += "<div>"+dr["column"].ToString();+"</div>";
}