jag har ett objekt som heter adverFormat, kan jag göra fler objekt och lägga i en slags lista? I så fall vad ska jag ha för lista och hur gör jag? Det jag behöver göra är att ta värden från en checkboxlista och på nåt sätt lagra det, för att senare lägga in det i en databas. Sidan kommer att postas om. min tanke var att ett objekt behåller väl sitt tillstånd även om sidan postat tillbaka? Hej, jag förklarade nog lite dumt. Jag har en checkboxlist där man kna välja och dessa val ska sen in i en databas, att jag inte vill lägga in dom direkt är för att jag inte har ett id som jag behöver. därför tänkte jag om man kunde spara dom i en lista tills jag har satt in annonsen i databasen och fått tillbaka id:t. Jag kan ju lösa det med att jag kastar in det i en temporär tabell och flyttar det när jag har fått ID. Då blev problemet att jag kan fylla min array men när jag klickar på knappen är den tom.Objekt i en lista?
Sv: Objekt i en lista?
Ett objekt håller inte tillstånd om du postar tillbaka.
Webben är stateless dvs tillståndlös, ett objekt måste hålla tillsdånd.
Dock kan värden läggas i ex viewstate, cookies, sessions, cache för att bevaras under massa request.
En sida har typ sin funktion. Jag hänger inte alls med på din tanke med checkbox. antingen väljer man ngot ett värde du får med vid postback som du kan plocka ut o spara ner eller så har man en listbox där man kan välja många värden som man kan plocka ut o spara ner...
Så...
i din codebehind, plokcar du ut alla dina värden, lägg den ex i ArrayList eller i en vanlig List
sedan om du har en lösning på 3 lager kan du skicka in denna lista till ex ditt datalager så får den sedan itterera genom listan för plocka deras värden.
Eller kör du 1 lager och pratar direkt mot DB från din codebehind så kan du lika gärna där itterera fram alla slelected values och spara ner dem direkt i DBn...
Mvh JohanSv:Objekt i en lista?
<code>
public ArrayList arrFormat = new ArrayList();
protected void cblFormt_OnIndexChanged(object sender, EventArgs e)
{
lblFormats.Text = "";
for (int i = 0; i < cblFormat.Items.Count; i++)
{
if (cblFormat.Items[i].Selected)
{
arrFormat.Add(cblFormat.Items[i].Value);
}
}
foreach (string strFormat in arrFormat)
{
lblFormats.Text += strFormat.ToString();
}
//foreach (string strFormat in arrFormat)
//{
// Test för att se så det läggs till...
// lblFormats.Text += strFormat.ToString() + "<br />";
//}
}
</code>
Sen har jag försökt lägga till en knapp där jag skickar in det till databasen, men det vill som sagt inte funka. När jag klickar på knappen är arrayen tom.
<code>
protected void btnAddOption_Click(object sender, EventArgs e)
{
adFormat.UserSession = Session.SessionID.ToString();
try
{
foreach (string strFormat in arrFormat)
{
adFormat.FormatID = int.Parse(strFormat.ToString());
adFormatDB.addAdvertiseFormat(adFormat);
}
}
catch (Exception ex)
{
lblFormats.Text = ex.Message.ToString();
}
}
</code>