如何获取转发器中属性的最后一个元素的值

时间:2016-02-25 08:19:23

标签: c# html asp.net arrays repeater

     <asp:Repeater ID="ReptServices" runat="server" OnItemDataBound="ReptServices_OnItemDataBound">
                      <b>
                  <td>    <%# Eval("ApplicationSteps") %></td>
                     <td><%# Eval("Service.ServiceName") %></td>
                            <td>
                                <b><%# Eval("BeneficiaryUserUnitJob.User.NameAr") %>  </b>
                            </td>
                            <td><%# Eval("DateCreated") %></td>
                      </b>
       </asp:Repeater>

这个转发器填入c#作为

ReptServices.DataSource = new ApplicationLogic(ApplicationType.Web).GetAllOutboxApplication(_currentUserUnitJob);

&#34; ApplicationSteps&#34;属性包含许多元素,其中包含另一个名为submitactiontypeid的属性,如下图所示:

enter image description here

我希望得到submitactiontypeid的最后一个元素中存在的ApplicationSteps的值

我问我将在<%# Eval("ApplicationSteps") %>

写下什么

2 个答案:

答案 0 :(得分:1)

我为您提供了不同的解决方案。

如果您无法修改您的代码,我们仍然不需要转发器来解决。

<%
var repeaterDataSource = (dynamic)ReptServices.DataSource;
foreach (var item in repeaterDataSource)
{%>

<%=item.ApplicationSteps %>

<%}%>

这是您的基本中继器。因为我不知道你绑定到repater的数据类型是什么,所以我使用动态类型。

您可以根据自己的目的进行修改。

<%=item.ApplicationSteps.Last().SubmitActionTypeId  %>

首先,调试时不添加此行。如果工作正常,请添加上面的代码,然后重试。

答案 1 :(得分:0)

如果您只需要在页面中呈现该值,那么repeater就没用了。试试这段代码:

ASP

<asp:Label runat="server" ID="SubmitActionType"></asp:Label>

然后是服务器端(C#)

using System;
using System.Collections.Generic;
using System.Linq;

public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var applicationSteps = GetApplicationSteps(); //Call the function that gives you the data you need

        var lastElement = applicationSteps.Last(); //Get the last element

        SubmitActionType.Text = lastElement.SubmitActionTypeId;
    }
}

当您需要为对象数组中的每个值渲染一些html时,repeater非常有用。在这种情况下,你显然没有这样做。