将数据装载到一个用户控件作为控制特性或在控制码后面?(Load data into a UserCo

2019-10-17 12:06发布

我建立一个用户控件将在页面上重复可变次数。 我想,以确定哪些最有效的方式来处理,我会被装入控制数据。 为了简便起见,可以说,它的结构将是这样的:

<table>
    <tr>
        <td>Header Item</td>
    </tr>
    <tr>
        <td>Body Item n</td>
    </tr>
    <tr>
        <td>Body Item n+1</td>
    </tr>
    <tr>
        <td>Body Item n+2</td>
    </tr>
    <tr>
        <td>etc.</td>
    </tr>
    <tr>
        <td>Footer Item</td>
    </tr>
</table>

所有这一切将被加载到该控件的数据将来自一个SQL查询。 美体项目将被控制的每一次迭代变化,但页眉和页脚的项目将是相同的,而这正是我想几个选项,我可以看到之间作出选择。

  1. 构建查询到控制本身的后面的代码,并重复它控制的每一次迭代,或:
  2. 从.aspx.cs页面,则该控件将使用的查询数据,并提供它们作为属性创建控件时。

选项1似乎是非常低效的。 如果我们谈论的只有两个项目,那么我可能只是倾向于接受的低效率,但我们谈论了很多。

选项2似乎是合理的,但我不知道如果这实际上是比任何选项1更好。

思考? 其他选项?

Answer 1:

使用Repeater控制

看看这里:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater(v=vs.80).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet -1

<asp:Repeater runat="server">

 <HeaderTemplate>
  <table>
   <tr>
    <td>Header Item</td>
   </tr>
 </HeaderTemplate>

 <ItemTemplate>
  <tr>
   <td>Body Item <%# Eval("Number") %></td>
  </tr>
 </ItemTemplate>

 <FooterTemplate>
   <tr>
    <td>Footer Item</td>
   </tr>
  </table>
 </FooterTemplate>

</asp:Repeater>


文章来源: Load data into a UserControl as control properties or in control code behind?