C# 动态更改中继器';s数据项

C# 动态更改中继器';s数据项,c#,asp.net,dynamic,asprepeater,C#,Asp.net,Dynamic,Asprepeater,我有一个控件,它从数据库加载数据 为了指定将在.aspx文件中的哪个列中使用,我在中继器的ItemTempate中使用 <%# DataBinder.Eval(Container.DataItem, "column1")%> 现在,当我需要进行更改时,例如,我需要另一个列而不是第1列,我必须打开Visual Studio,进行更改,再次发布项目,并将其上载到服务器 该控件如何在不必每次更改源代码的情况下进行更大的调整 是否有任何其他控件可以更好地满足我的需要

我有一个
控件,它从数据库加载数据

为了指定将在
.aspx
文件中的哪个列中使用,我在中继器的ItemTempate中使用

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

现在,当我需要进行更改时,例如,我需要另一个列而不是第1列,我必须打开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>

用户名
日期1
日期2
陈述

您需要定义如下条件,并将条件保存在数据库或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


条件是否可以是字符串并包含COLLMN的值?当然可以。只需将“if(mycondition)”更改为:不要忘记将Eval活页夹转换为正确的类型。这会更具动态性吗?例如,如果我需要再添加一个COLLMN?项目模板可以是xml吗?当然可以。给我一个你试图添加的数据样本,我会告诉你。如果是这样的话,我个人更喜欢每次更新代码,顺便说一下,没有必要每次都更新整个代码。您可以更改页面代码,每次需要时仅上载该特定页面。只需更新页面代码,然后在Visual Studio中,右键单击它并选择“Publish YourPage.aspx”,如果这有帮助,请不要忘记投票。您可以在简单的文本编辑器中打开aspx页面,将
collumn1
更改为
collumn1a
,然后保存。没有必要为此发布整个项目。只需确保新列存在。