Forum

repater içinde...
 
Bildirimler
Hepsini Temizle

repater içinde önceki ve sonraki konunun linkleri

4 Yazılar
2 Üyeler
0 Likes
352 Görüntüleme
(@HuseyinTopcu)
Gönderiler: 111
Estimable Member
Konu başlatıcı
 

Merhaba arkadaşlar, asp.net'te şöyle bir şey yapmaya çalışıyorum:

Sayfada yazıyı listelemek için kullandığım repeaterım var. Repater'ın herhangi bir yerinde  önceki yazı ve sonraki yazı var. Ben bunlara önceki ve sonraki olacak şekilde nasıl link verebilirim.

 
Gönderildi : 16/01/2015 00:32

(@eravse)
Gönderiler: 1753
Üye
 

Merhaba aşağıdaki kod yardımı ile yapabilirsiniz. Birde PagedDataSource adında bir kontrol var onunlada yapabilirsiniz.

Aşağıdaki kod bana ait değil ama çalışıyor.

 

<asp:Repeater ID="Repeater1" runat="server" onitemcommand="Repeater1_ItemCommand" onitemdatabound="Repeater1_ItemDataBound">
	<ItemTemplate>
		<div>
			Label: <asp:Label ID="itemLabel" runat="server"></asp:Label><br />
			<asp:LinkButton id="lnkPreviousWeek" Enabled="false" runat="server" commandargument="Previous" cssclass="inactive">&lt; Previous week</asp:LinkButton>&nbsp;|&nbsp;
			<asp:LinkButton id="lnkNextWeek" Enabled="false" runat="server" commandargument="Next" cssclass="active" >Next week &gt;</asp:LinkButton>
			<hr />
		</div>
	</ItemTemplate> 

</asp:Repeater>

 private int current = 1;


protected void Page_Load(object sender, EventArgs e)
{
	if (ViewState["current"] == null)
		ViewState["current"] = current;
	else
		current = (int)ViewState["current"];

	if (!IsPostBack)
	{
		Repeater1.DataSource = GetData(current);
		Repeater1.DataBind();
	}
}

private List<int> GetData(int start)
{
	//pseudo data; simulates a page of 2 records
	List<int> ds = new List<int>();
	ds.Add(start);
	ds.Add(start + 1);

	return ds;
}

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
	if ((string)e.CommandArgument == "Next")
		current++;
	else if ((string)e.CommandArgument == "Previous")
		current--;

	ViewState["current"] = current;

	Repeater1.DataSource = GetData(current);
	Repeater1.DataBind();
}

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
	LinkButton prev = (LinkButton)e.Item.FindControl("lnkPreviousWeek");
	LinkButton next = (LinkButton)e.Item.FindControl("lnkNextWeek");

	//here 1 and 3 are artificial boundaries for data for the sake of example
	if (current > 1)
		prev.Enabled = true;
	if (current < 3)
		next.Enabled = true;

	Label label = (Label)e.Item.FindControl("itemLabel");
	label.Text = e.Item.DataItem.ToString();
}

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 16/01/2015 01:48

(@HuseyinTopcu)
Gönderiler: 111
Estimable Member
Konu başlatıcı
 

Erdem bey çok teşekkür ederim deneyip çalıştırdım. Next'e ve Prev'e tıklanınca bir artıyor veya azaltıyor. Birer birer arttırırken aradaki ID (konu) silinmişse bulamadığından boş çıkartıyor.

Oraya nasıl bir sql kodu yazabilirim.

 
Gönderildi : 16/01/2015 03:23

(@eravse)
Gönderiler: 1753
Üye
 

Kodun data base baglantılı halını paylasırsanız yardımcı olmaya caloısayım 

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 16/01/2015 12:58

Paylaş: