Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > ASP.NET 3.x > Generella frågor

Använda Databind och lägga till items för hand

zpeedi
zpeedi

Gradering

#16525

Hej

Jag använder en SqlDataSource och databinder den till en DropDownList. Det funkar utmärkt men sedan vill jag lägga till en ListItem till. Hur löser jag detta på smidigaste möjliga vis? Hellst vill jag också att mitt "extra" ListItem skall ligga först i listan. Jag har testat att lägga till items i Page_Load och med DropDownListens edit items men de verkar bara skrivas över.

ID: #16525 | Skapades: 2009-07-06 21:55:50 | Tråden har 11 svar och har lästs 284 gånger.

Kimpo
Kimpo

Gradering

#16529

Testa och Lägg in det i det deklarativa.,  

 

  <asp:DropDownList runat="server" ID="ddlSomething>

                      <asp:ListItem Text="--- choose something ---" Value="someValue" Selected="True"/>

</asp:DropDownList>

 



Redigerad av Kimpo
Anledning: fixade till den lite

www.restaurangbloggen.se , www.kihi.se
ID: #16529 | Skapades: 2009-07-07 09:36:38

zpeedi
zpeedi

Gradering

#16530

Jag har testat det men det verkar som om Databind bara skriver över allt jag skrivit in.

ID: #16530 | Skapades: 2009-07-07 10:59:14

voigtan
voigtan

Gradering

#16531

kan du inte lägga till fler objekt i din datakälla innan du databinder den?

"add(new object()...)"?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #16531 | Skapades: 2009-07-07 11:04:19

pbf
pbf

Gradering

#16532

Precis som voigtan skriver får du göra.

Använd din DropDownList från code behind och kör Items.Add(new ListItem......

life is short, enjoy it!
ID: #16532 | Skapades: 2009-07-07 11:08:22

zpeedi
zpeedi

Gradering

#16533

Det låter ju precis som det jag vill göra men hur gör jag det? Jag har precis lärt mig använda datakällor och låter visual studio generera koden så jag begriper inte så mycket. Min datakälla ser ut så här:

 

 

 

 

 

 

 

 

 

 

 

 

<asp:SqlDataSource ID="SqlDataSourceClients" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>"SelectCommand="SELECT [Email] FROM [Person] WHERE ([Pt] = @Pt)">

 

 

    <SelectParameters>

 

 

        <asp:SessionParameter Name="Pt" SessionField="user" Type="String" />

 

 

    </SelectParameters>

</asp:SqlDataSource>

Är det i denna koden jag skall lägga till något eller gör jag det i code behind?

ID: #16533 | Skapades: 2009-07-07 11:27:45

zpeedi
zpeedi

Gradering

#16534

Pbf, jag förstår inte riktigt, att lägga till items till dropdownlistan är väl inte samma sak som att lägga till datakällan? Jag har testat att lägga till items i Page_Load men de skrivs över. Om jag istället lägger till dem i datakällan så kommer de väl med då jag skriver över.  

ID: #16534 | Skapades: 2009-07-07 11:37:16

voigtan
voigtan

Gradering

#16535

Var databinder du din dropdownlist? Du måste ju få en datakälla (från din SELECT sats). Om du databinder med id:t SqlDataSourceClients så få du även lägga in din dropdown lista(exemplet med idt "test"):

test.items.add(new ListItem(...));

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #16535 | Skapades: 2009-07-07 11:44:17

zpeedi
zpeedi

Gradering

#16536

Så vitt jag kan se så har jag tidigare inte gjort något anrop till databind utan det har visual studio löst åt mig. Jag testade nyss att göra ett manuellt anrop till databind och sedan lägga till ett item till dropdownlistan och det fungerade men då hamnade mitt manuellt ditlagda item sist. I och för sig kan jag ju sätta den till selected item och jag kanske får nöja mig med det. Gör jag tvärt om, lägger till mitt item först och sedan anropar databind så skrivs itemet över.

ID: #16536 | Skapades: 2009-07-07 12:01:49

voigtan
voigtan

Gradering

#16539

du kan testa att köra en insert:

test.Items.Insert(0,new ListItem());
och se om de andra flyttas ner. annars få man göra någon sortering.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #16539 | Skapades: 2009-07-07 12:41:19

zpeedi
zpeedi

Gradering

#16542

Insert löser problemet, tack så mycket.

ID: #16542 | Skapades: 2009-07-07 14:26:55

pbf
pbf

Gradering

#17129

Jag menar ju såhär t.ex. med min egen kod:

        IList<Friends> f = FriendsManager.GetFriends(CurrentUserId);
        foreach (Friends i in f) {
            if (i.RecieverUserID == CurrentUserId) {
                ddlFriends.Items.Add(new ListItem(i.User.Username, i.User.Username));

            } else {
                ddlFriends.Items.Add(new ListItem(i.Reciever.Username, i.Reciever.Username));
            }
        }

life is short, enjoy it!
ID: #17129 | Skapades: 2009-07-30 19:59:33
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy