如何从Repeater获取数据

时间:2016-03-09 17:34:51

标签: asp.net webforms

使用以下Repeater时:

<asp:Repeater ID="rptFee" runat="server" Visible="false">
    <HeaderTemplate>
        <div class="CSSTableGenerator">
        <table border="1">
        <thead>
            <th>Name</th>
            <th>Course</th>
            <th>Contact_No</th>
            <th>Total_Fee</th>
            <th>Paid_Amount</th>
            <th>Due_Amount</th>

        </thead>
    </HeaderTemplate>
    <ItemTemplate>
        <tbody>
            <tr>
                <td><asp:Label id="lblname" runat="server" Text='<%# Eval("Name") %>'></asp:Label></td>
                 <td><asp:Label id="lblcourse" runat="server" Text='<%# Eval("Course") %>'></asp:Label></td>
                 <td><asp:Label id="lblcontact" runat="server" Text='<%# Eval("Contact_No") %>'></asp:Label></td>
                 <td><asp:Label id="lbltotalfee" runat="server" Text='<%# Eval("Total_Fee") %>'></asp:Label></td>
                 <td><asp:Label id="lblpaid" runat="server" Text='<%# Eval("Paid_Fee") %>'></asp:Label></td>
                 <td><asp:Label id="lbldue" runat="server" Text='<%# Eval("Due_Amount") %>'></asp:Label></td>
            </tr>
        </tbody>
    </ItemTemplate>
    <FooterTemplate>
        </table>
        </div>
    </FooterTemplate>
</asp:Repeater>

我得到的结果是:

enter image description here

现在我想从转发器中取出Abhishek Mishra。在gridView我能够使用gdFee.Rows[0].Cells[0]执行此操作,我无法在转发器的情况下执行此操作。

如何在Repeater的索引0处检索该元素的名称?

3 个答案:

答案 0 :(得分:1)

使用转发器的属性OnItemDataBound。

在您的信息页中:

<asp:Repeater ID="rptFee" runat="server" Visible="false"   OnItemDataBound="rptFee_ItemDataBound">

在你的代码背后:

    protected void rptFee_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Label label = (Label)e.Item.FindControl("lblname");

            //You have now access to each lblname in your repeater...
            string temp = label.Text;
        }
    }

这是一个很好的链接:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemdatabound(v=vs.110).aspx

答案 1 :(得分:1)

Andy的回答对于在Repeater绑定每个RepeaterItem时找到控件是正确的。如果要在任何数据绑定事件之外获取RepeaterItems,则转发器具有一个简称为Items的RepeaterItem集合。

使用它类似于GridView,但你仍然需要像Andy的例子那样找到控件。

RepeaterItem item = rptFee.Items[0];
Label lblname = (Label)item.FindControl("lblname");
string name = lblname.text;

答案 2 :(得分:0)

您可以尝试下面的内容,

 void SortLinkedList()
    {
    struct LinkedNode *node=NULL, *temp = NULL;
    int tempvar;//temp variable to store node data
    node = start;
    temp = node->next;//temp node to hold node data and next link
    while(node != NULL && node->next != NULL)
    {
        for(int j=0; j<5; j++)//value 5 because I am taking only 5 nodes
        {
            if(node->data > temp->data)//swap node data
            {
                tempvar = node->data;
                node->data = temp->data;
                temp->data = tempvar;
            }
            temp = temp->next;
        }
        node = node->next;
      }
    }