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.
komponentval!
9 svar · 335 visningar · startad av Mc Fetto
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.
glöm inte att dubbelklicka på dropdownlisten så att händelsehanteraren skapas
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.
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.
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.
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();
erka skrev:
Mc Fetto, det är enkelt att använda paging i en repeater, använd dig av PagedDataSource
Kikar på det direkt :bire
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.
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.