webForumDet fria alternativet

komponentval!

9 svar · 335 visningar · startad av Mc Fetto

Mc FettoMedlem sedan nov. 20022 355 inlägg
#1

JAg sitter och funderar på vad som är bäst för att först lista data ifrån databas )olika kategorier och hur många de är i varje kategori). När man sedan klickar på en kategori ska all data i vald kategori listas. Ska man använda två olika DataList's som man sätter till visible, true | false. Eller hur ska man gå till väga. Jag antar att detta är en väldgit basic fråga men jag har inte riktigt greppat asp.net's tankesätt ännu.

DinoMedlem sedan sep. 20011 914 inlägg
#2

Sätt i kategorierna i en dropdownlist som har autopostback="true". Och när man väljer en kategori så tar du ut datan för den kategorin och sätter den i en repeater.

NöffMedlem sedan nov. 2003569 inlägg
#3

glöm inte att dubbelklicka på dropdownlisten så att händelsehanteraren skapas

Mc FettoMedlem sedan nov. 20022 355 inlägg
#4

Dino skrev:

Sätt i kategorierna i en dropdownlist som har autopostback="true". Och när man väljer en kategori så tar du ut datan för den kategorin och sätter den i en repeater.

Dropdownlist går bort då jag vill visa mer info över kategorierna direkt (hur många det finns undre varje kategori). Som det är nu har jag en datagrid för detta, men det känns lite overkill.

PDahlenMedlem sedan apr. 2004778 inlägg
#5

Byt ut din DataGrid mot DataList eller Repeater istället då. Funkar på precis samma sätt.

Använd två kontroller. Den första visar du kategorierna i. När man klickar på en kategori databinder du den andra med kategori innehållet.

Mc FettoMedlem sedan nov. 20022 355 inlägg
#6

PDahlen skrev:

Byt ut din DataGrid mot DataList eller Repeater istället då. Funkar på precis samma sätt.

Använd två kontroller. Den första visar du kategorierna i. När man klickar på en kategori databinder du den andra med kategori innehållet.

Japp, det bidde en datalist, hade först svårt att få det att se snyggt ut med lite inbygda tables etc. men det gick till slut. Försökte först med repeater då (om jag förstått det hela rätt) är den som är resurssnålast, men det var bökigt att skapa paging med denna.

erkaMedlem sedan dec. 19996 522 inlägg
#7

Mc Fetto, det är enkelt att använda paging i en repeater, använd dig av PagedDataSource

/Red
enkelt exempel, tblGuestBook är ett datatable med gästboksinlägg från ett specifikt år

PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = tblGuestBook.DefaultView;
	
objPds.AllowPaging = true;
objPds.PageSize = 8;

int currentPage;

if (Request.QueryString["Page"] != null)
{
	currentPage=Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
	currentPage = 1;
}

objPds.CurrentPageIndex = currentPage-1; 
lblCurrentPage.Text = "Sida: " + currentPage.ToString();
if (!objPds.IsFirstPage)
	lnkPrev.NavigateUrl= "Page.aspx?exec=Guestbook&Page="+ Convert.ToString(currentPage-1);						
if (!objPds.IsLastPage)
	lnkNext.NavigateUrl="Page.aspx?exec=Guestbook&Page="+ Convert.ToString(currentPage+1);

repeaterContent.DataSource=objPds;
repeaterContent.DataBind();
Mc FettoMedlem sedan nov. 20022 355 inlägg
#8

erka skrev:

Mc Fetto, det är enkelt att använda paging i en repeater, använd dig av PagedDataSource

Kikar på det direkt :bire

DinoMedlem sedan sep. 20011 914 inlägg
#9

Erka är det en bra lösning? Säg att du har 70 000 rader i databasen. Då måste du väl ta ut de 70 000 raderna för att sedan bara visa det antalet du vill, säg 20 st, vilket betyder att du belastat systemet med 69 980 rader data extra som du inte behöver.

erkaMedlem sedan dec. 19996 522 inlägg
#10

Nej det är självklart inte alltid bra att köra med den typen av paging, men är det mindre mänger så tycker jag det fungerar utmärkt.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)