繁体   English   中英

动态更改转发器的数据项

[英]Dynamically change repeater's data item

我有一个<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,"column1")%></span></td>
                <td><%# DataBinder.Eval(Container.DataItem,"column2")%></td>
                <td><%# DataBinder.Eval(Container.DataItem,"column3")%> </td>
                <td><%# DataBinder.Eval(Container.DataItem,"column4")%></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,"column1")%></span></td>
            <td><%# DataBinder.Eval(Container.DataItem,"column2")%></td>
            <% }else{ %>
            <td><%# DataBinder.Eval(Container.DataItem,"column2")%></td>
            <td><%# DataBinder.Eval(Container.DataItem,"column1")%></span></td>
             <% } %>
            <td><%# DataBinder.Eval(Container.DataItem,"column3")%> </td>
            <td><%# DataBinder.Eval(Container.DataItem,"column4")%></span></td>
        </tr>
    </ItemTemplate>
    <FooterTemplate></FooterTemplate>
</asp:Repeater

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM