webForumDet fria alternativet

Arrggg hata MS..

.NETur .NET

6 svar · 409 visningar · startad av Gladh

Medlem sedan maj 20012 812 inlägg
Frågan#1

Nu är jag så sur på MS så det finns inte...

Har en ListBox på min hemsida och skall plocka ut alla de items som är selected.

Då vill MS att jag skall loopa igenom alla mina items och kolla om just detta items är valt.

Om man tittar lite närmar på själv ListBoxen så ser man att det finns en intern/protected metod som heter: SelectedIndicesInternal som är en arraylist som innehåller de items som jag har valt.

Den kommer man åt jättefint i debugmode, eller i command window men jag får inte accessa den från min kod...

Jag blir så sur, j-vla skit...

så jag nu känns det lite bättre :l

Medlem sedan mars 20007 896 inlägg
#2

Men om den är protected, kan du ju ärva den till en sub-klass och därifrån göra det du vill kanske? Kanske till och med override:a den och göra den publik?

Medlem sedan maj 20012 812 inlägg
#3

Visst kan jag göra en egen klass, men måste jag ju ändra en massa i min kod, eftersom alla listboxar redan är placerade på sidan.

Jag trodde i min enfald att selectedvalue gav mig en kommaseparerad sträng tillbaka eftersom det inte fanns någon annan property som passade in.

När jag sedan testade sidan så märkte jag att så inte var fallet. Men varför har MS inte gjort propertyn SelectedIndicesInternal tillgänglig???

Medlem sedan juni 20022 599 inlägg
#4

Men varför har MS inte gjort propertyn SelectedIndicesInternal tillgänglig???

Bra fråga. Eftersom System.Windows.Forms.ListBox har en SelectedItems-collection så är det ju svårt att se nån rationell förklaring till att System.Web.UI.WebControls.ListBox inte skulle ha det.

Medlem sedan apr. 2004298 inlägg
#5

Jo, nu sitter jag med samma problem. Så nu undrar jag.

- Hur har Ni löst problemet?

Eller hur ser den loopen ut i C#?

Mvh Pär

Medlem sedan maj 20021 466 inlägg
#6

Jag hittar ingen SelectedIndicesInternal. Om den verkligen är "internal" så finns det ingen möjlighet alls att komma åt den. Antagligen för att egenskapen inte fungerar.

paraxe:

static void SetSelectedItems(ListBox list, string items)
{
	foreach(string id in items.Split(new char[] {','}))
	{
		foreach(ListItem item2 in list.Items)
			if(item2.Value == id)
			{
				item2.Selected = true;
				break;
			}
	}
}
static string GetSelectedItems(ListBox list)
{
	System.Text.StringBuilder text = new System.Text.StringBuilder();
	foreach(ListItem item in list.Items)
	{
		if(item.Selected)
		{
			if(text.Length > 0) text.Append(',');
			text.Append(item.Value);
		}
	}
	return text.ToString();
}
Medlem sedan juli 20011 304 inlägg
#7

Själv har jag dumpat alla "skitkontroller" och använder de från http://www.infragistics.com

De är underbara :)

men det hjälper ju förstås inte Gladh...

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