首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问Repeater中的标签

如何访问Repeater中的标签
EN

Stack Overflow用户
提问于 2017-04-09 13:36:30
回答 2查看 1.5K关注 0票数 3

im试图访问中继器中的标签以获得值,并在同一标签中设置另一个值

代码语言:javascript
复制
  <ul class="mail-list">
                                        <asp:Repeater ID="repMsg" runat="server" DataSourceID="EDSrepMSg">

                                            <ItemTemplate>
                                                <li>
                                                    <asp:LinkButton ID="lnkMsgDisplay" runat="server" CausesValidation="false" CommandName="Display_Msg" CommandArgument='<%# Bind("message_id") %>'>
                                                        <span class="mail-sender">
                                                            <asp:Label ID="lblEmail" runat="server" Text='<%#Eval("message_from") %>'></asp:Label></span>
                                                        <span class="mail-subject">
                                                            <asp:Label ID="lblSubject" runat="server" Text='<%#Eval("message_title") %>'></asp:Label></span>
                                                        <span class="mail-message-preview">
                                                            <asp:Label ID="lblMsg" runat="server" Text='<%#If (Eval("message_description").ToString.Length > 10,Eval("message_description").ToString.Substring(0,10).TrimEnd() & "..",Eval("message_description"))%>'></asp:Label></span>

                                                    </asp:LinkButton>

                                                </li>
                                            </ItemTemplate>
                                        </asp:Repeater>
                                        <asp:EntityDataSource ID="EDSrepMSg" runat="server" ConnectionString="name=BWJO_dbEntities" DefaultContainerName="BWJO_dbEntities" EnableFlattening="False" EntitySetName="tbl_message"
                                            Where="it.message_to=@message_to and it.message_type=2 or it.message_type=4 " OrderBy="it.message_date desc">
                                            <WhereParameters>
                                                <asp:SessionParameter SessionField="user_id" Name="message_to" Type="Int32" DefaultValue="0" />

                                            </WhereParameters>

                                        </asp:EntityDataSource>

产出:

注意:

tbl_msg,tbl_user,tbl_emp之间没有关系

我只想知道如何从

代码语言:javascript
复制
<asp:Label ID="lblEmail" runat="server" Text='<%#Eval("message_from") %>'></asp:Label>

然后将值设置为lblEmail(编辑标签)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-09 13:51:39

你可以先得到标签,然后再得到它的价值,就像这样。例如,您有标签:

代码语言:javascript
复制
<asp:Label ID="lblval" runat="server" Text="this is test"></asp:Label>

然后,在后端您可以得到如下所示的文本:

代码语言:javascript
复制
protected void rptrMaylike_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Label lblv = (Label)e.Item.FindControl("lblval");
        lblv.Text = "Value from code behind";
    }
}
票数 3
EN

Stack Overflow用户

发布于 2017-04-10 06:56:10

谢谢奥斯曼米孜给我提示,我就这样解决了它:

*在中继器中创建新标签以读取message_id

代码语言:javascript
复制
<asp:Label ID="lblMsgID" runat="server" Text='<%#Eval("message_id") %>' Visible="false"></asp:Label>

<asp:Label ID="lblEmail" runat="server" Text=""></asp:Label></span>

代码背后:

代码语言:javascript
复制
Protected Sub repMsg_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles repMsg.ItemDataBound

        If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
            Dim MsgID As Integer = Integer.Parse(TryCast(e.Item.FindControl("lblMsgID"), Label).Text)


            Using context As New BWJO_dbModel.BWJO_dbEntities
                Dim obj = context.tbl_message.FirstOrDefault(Function(u) u.message_id = MsgID)
                Dim fromID = obj.message_from
                Dim ToID = obj.message_to
                Dim msgtype = obj.message_type
                If msgtype = 2 Then
                    Dim userObj = context.tbl_user.FirstOrDefault(Function(u) u.user_id = fromID)
                    Dim userEmail = userObj.user_email
                    Dim lblEmail = TryCast(e.Item.FindControl("lblEmail"), Label)
                    lblEmail.Text = userEmail

                ElseIf msgtype = 4 Then
                    Dim empObj = context.tbl_employee.FirstOrDefault(Function(u) u.emp_id = fromID)
                    Dim empEmail = empObj.emp_email

                    Dim lblEmail = TryCast(e.Item.FindControl("lblEmail"), Label)
                    lblEmail.Text = empEmail

                End If

            End Using



        End If

注意:

message_type:

代码语言:javascript
复制
           1)user-user

           2)user-role

           3)role-user

           4)role-role
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43307321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档