如何在C#中创建动态服务器控件,以及如何将更多记录从数据库附加到repeater控件,而无需再次加载所有记录

如何在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

我在一个页面上有一个repeater控件,我用数据库中的10条记录填充它。页面上有一个“更多”按钮;两者都在更新面板内。“更多”按钮将从数据库中取出接下来的10条记录。我只想将新的10条记录附加到中继器中现有的10条记录上。我该怎么做

我需要它像Twitter和Facebook一样工作,加载服务器端控件,同时在不分页的情况下向repeater控件添加新记录

这是我的.aspx代码:

<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>";
}