webForumDet fria alternativet

Dynamiska droplister i c#

.NET

1 svar · 237 visningar · startad av soham

Medlem sedan okt. 200316 inlägg
Frågan#1

Jag har en sida där jag lägger till olika kategorier och man kan även lägga till kategorin som underkategori till en annan kategori, alltså nästlade.

Nu vill jag loopa upp kategorierna i den ordning de tillhör en superkategori i dynamiska droplister med en "visa" knapp brevid varje.
Det innebär att man måste fylla varje droplist med respektive parentId de har. Men ska man göra detta i en datalist/repeater?
Och hur plockar man ut värdena när man klickar på knappen "visa"?

Någon som har ett smart tips hur jag ska lösa detta?

Tacksam för hjälp

Soham

Medlem sedan okt. 200316 inlägg
#2

Ok.. Jag ger lite mer att bita i..

Jag har löst det halvägs eller nåt.

Gjorde en asp:table och sen skapar jag en droplist som har superkategorierna och en statisk länk brevid.
Sen har jag en selectedindexchanged på droplisten som skapar en ny droplist under med en ny länk brevid.
Funktionen ser ut följande
[KOD]

private void fillTbl(int ID)
{

		// koppling till databas//

		DropDownList list = new DropDownList();
		ListItem item = new ListItem("--Välj kategori--", "0");
		list.Items.Add(item);
		
		LinkButton link = new LinkButton();

		int intID = 1;
		string listID = "lst", linkID = "lnk"; 

		while(myReader.Read())
		{
			
			intID++;
			listID += intID.ToString();
			linkID += intId.ToString();

			TableCell cell1 = new TableCell();
			cell1.Width = 150;

			//---fyller min droplist

			list.CssClass = "textfield_W180";
			list.AutoPostBack = true;
			list.ID = listID ;
			item = new ListItem( myReader\["Name"\].ToString(), myReader\["ID"\].ToString() );
			list.Items.Add(item);
			//list.SelectedIndexChanged += new System.EventHandler(this) //en ny funktion???
			cell1.Controls.Add(list);
			
			TableCell cell2 = new TableCell();

			//---fyller min link			

			link.Text = "Visa";
			link.ID = linkID;
			cell2.Controls.Add(link);
			TableRow row1 = new TableRow();
			row1.Cells.Add(cell1);
			row1.Cells.Add(cell2);

			//---fyller min asp:table

			Tbl.Rows.Add(row1);
		}
	}

KOD]

..och det funkar en nivå ner. Alltså jag får ut de kategorier som ligger under den första.
Men nästa selectindexchanged på en nivå ner har jag ingen aning om hur jag ska lösa. Har provat med att sätta en egen funktion efter "this." men det funkar ej.

Hur plockar man ut id på dynamiskt skapade kontroller?
Och hur kan man få droplisten att köra en kopplad selectedindexchanged?

Om vi varit inne på dustin.se så förstår ni nog hur jag menar. Fast jag tror att de kör med tre fasta nivåer.

Någon som gjort nåt liknande eller har någon lösning?

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)