我有一个<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 :(得分:0)
您需要定义如下所示的条件,并将条件保存在数据库或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