动态更改中继器的数据项
问题描述:
我有一个<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>
答
您需要定义一个条件,如以下和保存条件无论是在数据库或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
你可以在一个简单的文本编辑器打开aspx页面和改变'collumn1'为'collumn1a'和保存。没有必要为此发布整个项目。只要确保新列存在。 – VDWWD