微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用c#asp.net循环在转发器控件内部的div部分?

如何解决如何使用c#asp.net循环在转发器控件内部的div部分?

我正在使用具有多个<div>的转发器控件,我获得了除注释之外的所有值。

div仅获取单个记录。尽管有中继器,但这些值没有循环。有什么解决办法可以重复我的评论部分吗?

请帮忙吗?

我的标记

<asp:Repeater ID="rpt_post" runat="server" OnItemDataBound="rpt_post_ItemDataBound" >
    <ItemTemplate>
        <div class="user-thumb">
            <img src='<%# Eval("Profile_Pic") %>'  class="img-responsive" />
        </div>
        <div class="user-information">
            <p><%# Eval("Name") %> </p>
            <small><%# Eval("Timestamp") %> </small>
            <asp:Label ID="lblpost_id" runat="server" Visible="false" Text='<%# Eval("Post_Id") %>' > 
            </asp:Label>
        </div>
        <div class="comment col-md-12">//this section is not repeating
            <h4>taruni </h4>
                <asp:Label runat="server" ID="lblcomment" Text='<%# Eval("Comment") %>'></asp:Label>
    </ItemTemplate>
</asp:Repeater> 
      

隐藏代码

protected void rpt_post_ItemDataBound(object sender,RepeaterItemEventArgs e)
{
    try
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            sqlConnection con = new sqlConnection(constr);

            sqlCommand cmd = new sqlCommand();
            cmd.CommandText = "SELECT pc.Comment,pc.Post_Id FROM Post_Comment pc INNER JOIN Posts kp ON kp.Post_Id = pc.Post_Id WHERE pc.Post_Id = @postid";
            cmd.Parameters.AddWithValue("@postid",postid);
            cmd.Connection = con;

            sqlDataAdapter da = new sqlDataAdapter();

            con.open();
            da.SelectCommand = cmd;
            DataTable dt = new DataTable();
            da.Fill(dt);

            if (dt.Rows.Count > 0)
            {
                Label lblcom = (Label)e.Item.FindControl("lblcomment");
                lblcom.Text = dt.Rows[0]["Comment"].ToString();
            }
        } 
    }
}

解决方法

您没有使用中继器

这是您的代码

    static void Main()
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[]
        {
            new Service1()
        };
        ServiceBase.Run(ServicesToRun);
    }

您正在将该标签的文本设置为第一个注释。这就是为什么您只看到一条评论的原因。

您可能想要这样的东西:

               if (dt.Rows.Count > 0)
                {
                    Label lblcom = (Label)e.Item.FindControl("lblcomment");
                    lblcom.Text = dt.Rows[0]["Comment"].ToString();
                }

也 这个

    rpt_post.DataSource = dt;  
    rpt_post.DataBind();  

与此相同

select pc.Comment,pc.Post_Id 
from Post_Comment pc
INNER JOIN Posts kp on kp.Post_Id=pc.Post_Id 
 where pc.Post_Id=@postid;
,

将数据行放入DataRowView中,然后获取/设置您的注释

--prefix

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。