مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

moonfa1392

عضویت از 1394/08/17

ریپیتر تو در تو

  • شنبه 25 شهریور 1396
  • 02:57
تشکر میکنم

سلام وقتتون بخیر

این کد های من هست:

<div class="content-list">
                <asp:SqlDataSource
                    ID="SqlDataSource1"
                    ConnectionString="<%$ ConnectionStrings:dbconnection %>"
                    runat="server"
                    SelectCommand="select * from tbl_content where bin='false' and notactive='false'"></asp:SqlDataSource>
                <ul>
                    <asp:Repeater ID="Repeater2" DataSourceID="SqlDataSource1" runat="server">
                        <ItemTemplate>
                            <li>
                                <div class="picture">
                                    <img alt="<%#Eval("title") %>" title="<%#Eval("title") %>" src="<%#Eval("picture") %>" />
                                </div>
                                <div class="left">
                                    <div class="title">
                                        <div class="right">
                                            <a href="<%# string.Format("FullContent.aspx?id={0}",Eval("id")) %>">
                                                <h2><%#Eval("title") %></h2>
                                            </a>
                                            <p class="date"><%#Eval("datereg") %></p>
                                        </div>
                                        <div class="buttons">
                                            <div class="comments">
                                                <div class="img"></div>
                                                <asp:SqlDataSource
                                                    ID="SqlDataSource2"
                                                    ConnectionString="<%$ ConnectionStrings:dbconnection %>"
                                                    runat="server"
                                                    SelectCommand='<%#"SELECT count(id) as id FROM [tbl_comments] Where trash='false' and active='true' and postid="+Eval("id") %>'></asp:SqlDataSource>
                                                <a href="#" target="_blank">
                                                    <asp:Repeater ID="Repeater3" DataSourceID="SqlDataSource2" runat="server">
                                                        <ItemTemplate>
                                                            <%# Eval("id") %>
                                                        </ItemTemplate>
                                                    </asp:Repeater>
                                                    دیدگاه</a>
                                            </div>
                                            <div class="seen">
                                                <div class="img"></div>
                                                <p>+6549</p>
                                            </div>
                                            <div class="like">
                                                <div class="img"></div>
                                                <p>659</p>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="text">
                                        <p><%#Eval("description") %> [...]</p>
                                        <a href="<%# string.Format("FullContent.aspx?id={0}",Eval("id")) %>" class="more">
                                            <span>بیشتر بخوانید!</span>
                                            <div class="img"></div>
                                        </a>
                                    </div>
                                </div>
                            </li>
                        </ItemTemplate>
                    </asp:Repeater>
                </ul>
            </div>

ارور اینه:

مشکل درواقع از خصوصیت SelectCommand در دیتاسورس دوم که مال ریپیتر داخلی هست:

SelectCommand='<%#"SELECT count(id) as id FROM [tbl_comments] Where trash='false' and active='true' and postid="+Eval("id") %>'

وقتی به صورت زیر بنویسمش ارور رفع میشه ولی مشکل حل نمیشه، چون من میخوام شرط بذارم که تعداد نظراتی که مربوط به این پست هست یا درواقع postID شون برابر با ID پست هست رو نمایش بده نه تعداد تمام نظرات رو:

SelectCommand="SELECT count(id) as id FROM [tbl_comments] Where trash='false' and active='true'"

خروجی کار هم درواقع این هست، ریپیتر دوم تعداد نظرات هر مطلب رو نمایش میده:

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • شنبه 25 شهریور 1396
  • 08:00

مشکل بعد از 5 ساعت تلاش حل شد surprise

باید از SelectParameters و ControlParameter داخل SqlDataSource استفاده میکردم به این صورت که ابتدا ID رو داخل یک Lable در همون Repeater اولی ذخیره کردم و بعد از طریق ControlParameter به SelectParameters متصلش کردم.

کد نهایی شد این:

<asp:SqlDataSource
                                                    ID="SqlDataSource2"
                                                    ConnectionString="<%$ ConnectionStrings:dbconnection %>"
                                                    runat="server"
                                                    SelectCommand="SELECT count(id) as id FROM [tbl_comments] Where trash='false' and active='true' and postid = @NumID">
                                                    <SelectParameters>
                                                        <asp:ControlParameter Name="NumID" Type="Int32" ControlID="Label1" PropertyName="Text" />
                                                    </SelectParameters>
                                                </asp:SqlDataSource>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)