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

时间:2015-06-29 11:20:46

标签: c# sql asp.net

我在页面上有一个转发器控件,我用数据库中的10条记录填充。页面上还有一个按钮;两者都在更新面板内。更多按钮带来数据库中的下10条记录。我想要做的就是将新的10条记录附加到转发器中的现有10条记录中。我该怎么做?

我需要它像Twitter和Facebook一样工作并加载服务器端控件,同时将新记录附加到转发器控件而不进行分页。

这是我的.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>

我的itemdatabound:

public void rptCore_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    //load controls data and calculations here.. like fileupload control etc
}

1 个答案:

答案 0 :(得分:0)

根据您的要求,通过调用for/Foreach结构代替转发器来使用table/div循环。

为您的逻辑调用最后一个索引的10条记录,并添加到table/div

这将解决您的问题,并且在不出现任何性能问题的情况下非常有效。

例如。遵循以下逻辑 -

DataTable dt = GetYourRows(); 
String html = "";
foreach(DataRow dr in dt.Rows)
{
 html += "<div>"+dr["column"].ToString();+"</div>";
}

然后在现有HTML代码中的任意位置使用html