PDA

View Full Version : سوال: سوال در مورد Repeater



ashkan.890
چهارشنبه 07 اسفند 1392, 04:41 صبح
سلام
خسته نباشید
میخواستم بدونم چه جوری میشه 2 تا ریپیتر رو در داخل هم گذاشت
من این کار رو کردم ولی وقتی به صفحه کد ها میرم دیگه ریپیتر داخل رو نمیشناسه و فقط ریپیتر اولی میشناسه
ممون

mehrzad_ali
چهارشنبه 07 اسفند 1392, 12:35 عصر
رپیتر دومی رو باید توی رویداد ItemDataBound رپیتر اولی بایند کنی
این کد رو بزن توی itemdatabount رپیتر اولی

Repeater rpt = (Repeater)row.FindControl("myRepeater");
rpt.DataSource = dt;
rpt.DataBind();

ahmad156
چهارشنبه 07 اسفند 1392, 19:36 عصر
<asp:Repeater runat="server" ID="rpLink01" OnItemDataBound="rpLink01_ItemDataBound">
<ItemTemplate>
<div style="border: 1px groove gray; border-radius: 5px; margin: 2px; display: inline-block; vertical-align: top" class="dvOtherLinks">
<div style="text-align: center; margin-bottom: 2px;padding: 5px; background:url('../Images/bg-otherlinktitle.png') no-repeat center"><%# Eval("title") %></div>

<asp:Repeater runat="server" ID="rpLink02">
<ItemTemplate>
<asp:HyperLink runat="server" NavigateUrl='<%# Eval("url") %>'><%# Eval("title") %></asp:HyperLink>
</ItemTemplate>
</asp:Repeater>
</div>
</ItemTemplate>
</asp:Repeater>


protected void rpLink01_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView row = (DataRowView)e.Item.DataItem;
var linkSubjectId = row["linksubjectId"].ToInt();
var rp02 = (Repeater)e.Item.FindControl("rpLink02");
rp02.DataSource = new LinkBLL().SelectLinks(linkSubjectId);
rp02.DataBind();
}
}

قضیه از این قراره Repeater اولی موضوعات اصلی رو از DataBase میخونه و Repeater دومی براساس موضوع اصلی،موضوع فرعی رو از DataBase میخونه

ashkan.890
پنج شنبه 08 اسفند 1392, 10:05 صبح
مرسی از جواباتون
ممنون