webForumDet fria alternativet

DetailsView - Alltid tomma värden...

.NET

7 svar · 595 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

Jag sitter och försöker hämta värdena i min DetailsView men de är alltid tomma... hur kommer det sig?

TextBox textbox = (TextBox)DetailsViewProducts.FindControl("TextBoxQuantityInsert");
string value = textbox.Text; // = ""

Text värdet får alltid värdet "" oavsett vad jag försöker med.. Om jag slänger in en SqlDataSource eller liknande så fungerar det utmärkt. Varför i hela friden innehåller kontrollerna inga värden? Någon som råkat ut för det?

Medlem sedan jan. 20022 440 inlägg
#2

Är det i detta läget jag behöver någon typ av Fake-object?

Medlem sedan jan. 20022 440 inlägg
#3

Haha detta är så jäkla lol men jag skiter i de databundna kontrollerna och slänger in ett Table med diverse textboxar i istället. Då har jag full kontroll!

Medlem sedan feb. 20001 590 inlägg
#4

Ehh, det verkar som du gör rätt från början. Det är inte så att detailviewproducts är omsluten av en annan kontroll?

Medlem sedan nov. 20011 551 inlägg
#5

jag brukar använda en rekursiv egen findcontrol för att hitta saker om det är snårigt :)

public static Control FindControl(Control container, string id)
		{
			if (container == null || string.IsNullOrEmpty(id))
			{
				return null;
			}

			Control theControl = container.FindControl(id);

			if (theControl == null)
			{
				foreach (Control ctrl in container.Controls)
				{
					theControl = ctrl.FindControl(id);
					if (theControl == null && ctrl.HasControls())
					{
						theControl = FindControl(ctrl, id);
					}

					if (theControl != null)
					{
						break;
					}
				}
			}

			return theControl;
		}

plocka fram med hjälp av t ex:

Pages p = Lib.Common.FindControl(Page, "_ucPages") as Pages;
Medlem sedan nov. 20011 551 inlägg
#6

ett annat tips är att kolla mha immediate fönstret, där kan du skriva in dina objekty och kolla vad som finns i dem, använder det jämt i debugg :) . testa ctrl + alt + i i debug i din miljö klistra in t ex: DetailsViewProducts, slå enter och se om du får något resultat eller om den är null, du kan gå från page. och nedåt tills du hittar den :)

Medlem sedan jan. 20022 440 inlägg
#7

problemet var att den tappade entiteten trots att jag inte gjorde postback därför var allting tomt. Ajax är lite konstigt ibland. Trodde inte jag skulle behöva bry mig om postbacks när jag använde Ajax. Lösningen blev att stoppa några saker i Viewstaten manuellt och sedan hämta dem via

private void getEntity()
{
    if (_entity == null)
        _entity = ViewState["Entity"];
}

Tack för förslaget på både ctrl+alt+i och den rekursiva sökningen. Jag hade redan en funktion för att loopa igenom kontroller men det tål att postas igen! :D

Medlem sedan nov. 20011 551 inlägg
#8

så lite så :D

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