动态更改中继器的数据项

问题描述:

我有一个<asp:Repeater>控件可从数据库加载其数据。动态更改中继器的数据项

要指定哪一列将被用在在.aspx文件,我用的是Repeater的ItemTempate

<%# DataBinder.Eval(Container.DataItem, "column1")%> 

里面现在,当我需要做出改变如。我想要另一列而不是column1,我必须打开Visual Studio,进行更改,再次发布项目并将其上载到服务器。

如何在不必每次更改源代码的情况下更好地调整此控件?

是否有任何其他控件可以做我需要的更好的?

ASPX标记:

<table class="uk-table"> 
<thead> 
    <tr> 
     <th>User Name</th> 
     <th>Date 1</th> 
     <th>Date 2</th> 
     <th>State</th> 
    </tr> 
</thead> 
<tbody> 
    <asp:Repeater runat="server" ID="Repeater2"> 
     <HeaderTemplate></HeaderTemplate> 
     <ItemTemplate> 
      <tr class="uk-table-middle"> 
       <td><%# DataBinder.Eval(Container.DataItem,"collumn1")%></span></td> 
       <td><%# DataBinder.Eval(Container.DataItem,"collumn2")%></td> 
       <td><%# DataBinder.Eval(Container.DataItem,"collumn3")%> </td> 
       <td><%# DataBinder.Eval(Container.DataItem,"collumn4")%></span></td> 
      </tr> 
     </ItemTemplate> 
     <FooterTemplate></FooterTemplate> 
    </asp:Repeater> 
</tbody> 
</table> 
+0

你可以在一个简单的文本编辑器打开aspx页面和改变'collumn1'为'collumn1a'和保存。没有必要为此发布整个项目。只要确保新列存在。 – VDWWD

您需要定义一个条件,如以下和保存条件无论是在数据库或XML文件中,甚至在web.config(对你),然后执行以下操作。不要忘记取回您的病情进行转发的,如果你想申请的所有行:

<% 
    var myCondition = true; // whatever it could be... 
%> 
<asp:Repeater runat="server" ID="Repeater2"> 
    <HeaderTemplate></HeaderTemplate> 
    <ItemTemplate> 
     <tr class="uk-table-middle"> 
      <% if (mycondition){ %> 
      <td><%# DataBinder.Eval(Container.DataItem,"collumn1")%></span></td> 
      <td><%# DataBinder.Eval(Container.DataItem,"collumn2")%></td> 
      <% }else{ %> 
      <td><%# DataBinder.Eval(Container.DataItem,"collumn2")%></td> 
      <td><%# DataBinder.Eval(Container.DataItem,"collumn1")%></span></td> 
      <% } %> 
      <td><%# DataBinder.Eval(Container.DataItem,"collumn3")%> </td> 
      <td><%# DataBinder.Eval(Container.DataItem,"collumn4")%></span></td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate></FooterTemplate> 
</asp:Repeater 
+0

条件是否可以是一个字符串并包含该列的值? – athskar

+0

当然。只要将“if(mycondition)”更改为: 不要忘记将Eval联编程序转换为正确的类型。 – AHBagheri

+0

这可以更动态吗?例如,如果我需要添加一个更多的列表?项目模板可以是一个XML? – athskar