动态更改转发器的数据项

时间:2017-02-11 20:28:00

标签: c# asp.net dynamic asprepeater

我有一个<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>

1 个答案:

答案 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