PDA

View Full Version : سوال: قسمت پاسخ به نظرات



haamidd
یک شنبه 22 تیر 1393, 14:28 عصر
با سلام و عرض خسته نباشید.

من با ASP.NET قسمت ارسال نظر به مطالب سایت رو نوشتم و هیچ مشکلی نداره و قسمت پاسخ به نظرات رو هم نوشتم ولی فقط مشکل من اینجاست که نمیتونم پاسخ ها رو در جای درست نمایش بدم.

مثل این:
121081

barzin144
یک شنبه 22 تیر 1393, 17:21 عصر
به نظر من باید از دو ریپیتر تو در تو استفاده کنید که رپیتر اول نظرات را نمایش میدهد و رپیتر داخلی پاسخهای اون نظر را نمایش میدهد.

haamidd
یک شنبه 22 تیر 1393, 23:33 عصر
به نظر من باید از دو ریپیتر تو در تو استفاده کنید که رپیتر اول نظرات را نمایش میدهد و رپیتر داخلی پاسخهای اون نظر را نمایش میدهد.

درسته من همین کار رو کردم ولی ارور گرفت! اصلا نمیشد!
اگه شما میدونید که چطور میشه این کار رو کرد اگه منو راهنمایی کنید خیلی ممنون میشم ازتون :)

barzin144
دوشنبه 23 تیر 1393, 00:56 صبح
دوست عزیز من اینکار را به این صورت انجام میدم معمولا: رپیتر اول رو با object data source وصل میکنم که نظرات رو بیاره و در داخل رپیتر یک لیبل که hidden هست رو به ID نظر وصل میکنم و در همون داخل رپیتر اول object data source بعدی که ID نظر را بگیره و پاسخ های اونو بیاره میزام و بهش میگم ID رو از اون لیبل بخونه و رپیتر دوم رو به object data source دوم وصل میکنم.

یه راه دیگه هم هست که کلا درگیر رپیتر نشید این هست که یه Literal بزارید جای این نظرات و کل نظرات و پاسخ های اونها رو سمت سرور با دوتا حلقه ایجاد کنی.

این نظرات من هست دوستان اگه نظرات بهتری دارند منم خوشحال میشم روش های دیگری رو ببینم.

haamidd
دوشنبه 23 تیر 1393, 02:40 صبح
دوست عزیز من اینکار را به این صورت انجام میدم معمولا: رپیتر اول رو با object data source وصل میکنم که نظرات رو بیاره و در داخل رپیتر یک لیبل که hidden هست رو به ID نظر وصل میکنم و در همون داخل رپیتر اول object data source بعدی که ID نظر را بگیره و پاسخ های اونو بیاره میزام و بهش میگم ID رو از اون لیبل بخونه و رپیتر دوم رو به object data source دوم وصل میکنم.

یه راه دیگه هم هست که کلا درگیر رپیتر نشید این هست که یه Literal بزارید جای این نظرات و کل نظرات و پاسخ های اونها رو سمت سرور با دوتا حلقه ایجاد کنی.

این نظرات من هست دوستان اگه نظرات بهتری دارند منم خوشحال میشم روش های دیگری رو ببینم.


دوست عزیز میشه لطفا یه نمونه کد بزاری تا ببینم....
اخه این چیزی که گفتین رو نوشتم ولی باز نشد...
ممنون :)

majidnazari65
دوشنبه 23 تیر 1393, 08:31 صبح
سلام.
به نظر من بهتره از روشی که در این لینک (http://barnamenevisan.org/Articles/Article2230.html) برای ساخت منوهای تودرتو توضیح داده شده استفاده کنی. با کمی تغییر میتونی اون رو برای قسمت نظرات هم اعمال کنی.

haamidd
دوشنبه 23 تیر 1393, 16:37 عصر
درست شد دوستان. ممنون :)

itloveh
دوشنبه 23 تیر 1393, 23:51 عصر
درست شد دوستان. ممنون :)

دوست گرامی میشه کدی که نوشتی ،بزاری ما هم استفاده کنیم .

haamidd
سه شنبه 24 تیر 1393, 11:52 صبح
بفرمایین.....


Post.aspx


<asp:Repeater ID="comments_list" runat="server" OnItemDataBound="comments_list_ItemDataBound">
<HeaderTemplate>
<ol class="commentlist">
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text="" Style="display: none"><%# comment_parent_Main_ID = Convert.ToInt32(Eval("comment_ID")) %></asp:Label>
<li class="comment even thread-even depth-1" id="li-comment-4">
<div id="comment-5" class="comment-body cf">
<img alt='' src='<%# getGravatarImage(Eval("comment_author_email")) %>' class='avatar avatar-35 photo' height='35' width='35' />
<div class="comment-author vcard"><%# Eval("comment_author_name") %></div>
<div class="comment-meta commentmetadata">
<span class="comment-date"><%# Eval("comment_date") %></span>
<span class="comment-reply-link-wrap"><a class='comment-reply-link' href='post.aspx?id=<%# Request.QueryString["id"] %>&main_Comment_ID=<%# Eval("comment_ID") %>'>پاسخ دادن</a></span>
</div>
<div class="comment-inner">
<p><%# Eval("comment_content") %></p>
</div>
</div>
</li>



<asp:Repeater ID="comments_parent_list" runat="server">
<ItemTemplate>
<ul class='children' style="margin-right:40px">
<li class="comment even alt depth-2" id="li-comment-2-1">
<div id="comment-2" class="comment-body cf">
<img alt='' src='<%# getGravatarImage(Eval("comment_parent_author_email")) %>' class='avatar avatar-35 photo' height='35' width='35' />
<div class="comment-author vcard"><%# Eval("comment_parent_author_name") %></div>
<div class="comment-meta commentmetadata">
<span class="comment-date"><%# Eval("comment_parent_date") %></span>
</div>
<div class="comment-inner">
<p><%# Eval("comment_parent_content") %></p>
</div>
</div>
</li>
</ul>
</ItemTemplate>
</asp:Repeater>


</ItemTemplate>
<FooterTemplate>
</ol>
</FooterTemplate>
</asp:Repeater>


Post.aspx.cs



protected void Page_Load(object sender, EventArgs e)
{
DataSet1.commentsDataTable dt1 = new DataSet1.commentsDataTable();
DataSet1TableAdapters.commentsTableAdapter ta1 = new DataSet1TableAdapters.commentsTableAdapter();
ta1.comment_select_postIdAndStatus(dt1, post_ID);
comments_list.DataSource = new DataView(dt1);
comments_list.DataBind();
}


protected void comments_list_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater Repeater2 = (Repeater)(e.Item.FindControl("comments_parent_list"));

DataSet1.comments_parentDataTable dt2 = new DataSet1.comments_parentDataTable();
DataSet1TableAdapters.comments_parentTableAdapter ta2 = new DataSet1TableAdapters.comments_parentTableAdapter( );
ta2.Comment_parent_select_commentParentMainId(dt2, comment_parent_Main_ID);

Repeater2.DataSource = dt2;
Repeater2.DataBind();

}