PDA

View Full Version : سوال: ارسال id از ریپیتر خارجی به repeater داخلی



sadegh.te
شنبه 26 مهر 1393, 11:46 صبح
سلام خدمت اساتید محترم من از ریپیتر تو در تو استفاده کردم حالا میخوام id ریپیتر خارجی رو در repeater داخلی در یافت کنم اگه میشه راهنمایی کنید که چطور انجامش بدم؟؟

ممنون میشم.

ahmad156
شنبه 26 مهر 1393, 14:26 عصر
<%# DataBinder.Eval(Container.Parent.Parent, "DataItem.yourParentKey")%>

sadegh.te
شنبه 26 مهر 1393, 14:30 عصر
این کد رو دقیقا باید کجا بنویسم؟

ahmad156
شنبه 26 مهر 1393, 14:35 عصر
این رو داخل ItemTemplate مربوط به Repeater داخلی بنویسین

sadegh.te
شنبه 26 مهر 1393, 14:44 عصر
ببخشید که من زیاد میپرسم ولی کد ItemTemplate داخلی من این هستش که باید سه تا مقدار رو ارسال کنم به یه صفحه دیگه دو تا از این مقادیر داخل ریپیتر داخلی هست ولی مقدار سوم توی

repeater خارجی هستش؟



<ItemTemplate>
<li><a href="<%# string.Format("/WebForm5/{0}/{1}",Eval("idgrop2"),Eval("childmenu2").ToString().Replace(" ","-")) %>" style="font-family: 'Baskerville Old Face'"><i class="icons icon-left-dir"></i><%#DataBinder.Eval(Container.DataItem,"childmenu2")%></a></li>
</ItemTemplate>

حالا من باید اینو چیکارش کنم؟؟

sadegh.te
شنبه 26 مهر 1393, 18:41 عصر
بچه ها یعنی کسی نمیدونه؟؟

ahmad156
شنبه 26 مهر 1393, 18:52 عصر
دوست عزیز سوالتون الان کجاست؟کد بالا توی Repeater داخلی کلید سطر جاری از Repeater بیرونی رو میده.

sadegh.te
شنبه 26 مهر 1393, 19:03 عصر
این کد ریپیتره میخوام از ریپیتر1 کد id محصول ارسال بشه به repeater3 و از اونجا ارسالش کنم به یه page دیگه؟



<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<HeaderTemplate>
<nav id="main-navigation" class="style1" dir="rtl">
<ul dir="rtl">
</HeaderTemplate>
<ItemTemplate>
<li class="<%#DataBinder.Eval(Container.DataItem,"color")%>">
<a>

<i class="icons icon-mobile-6"></i>

<span class="nav-caption"><%#DataBinder.Eval(Container.DataItem,"title")%></span>
<span class="nav-description"><%#DataBinder.Eval(Container.DataItem,"subtitle")%></span>
</a>
<ul class="wide-dropdown normalAniamtion" dir="rtl">
<li dir="rtl">
<ul dir="rtl">
<li><span class="nav-caption"><%#DataBinder.Eval(Container.DataItem,"lavazem")%></span></li>

</ul>
</li>
<li dir="rtl">
<ul dir="rtl">
<li><span class="nav-caption"></span>
<br />
</li>

</ul>
</li>
<li dir="rtl">
<ul dir="rtl">
<asp:Repeater ID="Repeater4" runat="server" DataSourceID="SqlDataSource3">
<HeaderTemplate>
<br />
<br />
</HeaderTemplate>
<ItemTemplate>

<li><a href="#" style="font-family: 'Baskerville Old Face'"><i class="icons icon-left-dir"></i><%#DataBinder.Eval(Container.DataItem,"childmenu3")%></a></li>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:menuConnectionString %>"
SelectCommand='<%#"SELECT * FROM [child] Where idgrop3="+Eval("id") %>'></asp:SqlDataSource>
</ul>
</li>
<li dir="rtl">
<ul dir="rtl">
<asp:Repeater ID="Repeater3" runat="server" DataSourceID="SqlDataSource2">
<HeaderTemplate>
<br />
<br />
</HeaderTemplate>
<ItemTemplate>

<li><a href="<%# string.Format("/WebForm5/{0}/{1}",Eval("idgrop2"),Eval("childmenu2").ToString().Replace(" ","-")) %>" style="font-family: 'Baskerville Old Face'"><i class="icons icon-left-dir"></i><%#DataBinder.Eval(Container.DataItem,"childmenu2")%></a></li>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:menuConnectionString %>"
SelectCommand='<%#"SELECT * FROM [child] Where idgrop2="+Eval("id") %>'></asp:SqlDataSource>

</ul>
</li>
<li dir="rtl">
<ul dir="rtl">
<li><span class="nav-caption"><%#DataBinder.Eval(Container.DataItem,"title")%></span></li>
<asp:Repeater ID="Repeater2" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>

<li><a href="#" style="font-family: 'Baskerville Old Face'"><i class="icons icon-left-dir"></i><%#DataBinder.Eval(Container.DataItem,"childmenu")%></a></li>
</ItemTemplate>
</asp:Repeater>

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:menuConnectionString %>"
SelectCommand='<%#"SELECT * FROM [child] Where idgrop="+Eval("id") %>'></asp:SqlDataSource>
</ul>
</li>

</ul>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</nav>
</FooterTemplate>
</asp:Repeater>

ahmad156
شنبه 26 مهر 1393, 19:17 عصر
شما از ItemDataBound استفاده کنین بدین صورت که به ازای هر سطر از Repeater1 شما باید Repeater های داخلی رو مقدار دهی میکنین.توی ItemDataBound مربوط به Repeater1 میتونین Repeater های داخلی رو مقداردهی کنین

var rpTemp = (Repeater)e.Item.FindControl("Repeater3");
var Id= ((DataRowView)e.Item.DataItem)["Repeater1Key"].ToInt();

حالا شما کلید سطر جاری از Repeater1 رو دارین.با استفاده از این کلید اطلاعات رو بخونین و به Repeater های داخلی(مثل rpTemp) نسبت بدین

sadegh.te
یک شنبه 27 مهر 1393, 10:02 صبح
اساتید محترم کسی راه حل دیگه ای پیشنهاد نمیده؟