Jeg kan godt hjælpe dig, men jeg skal bruge noget mere information.
1. Jeg går ud fra at det er en webside du er i gang med at udvikle. Er dette rigtigt antaget? 2. Hvor kommer data fra, som skal ind i CheckBoxListen? Database, xmldokument, objektliste eller er de hardcoded?
Det er rigitg antaget, det er en webside jeg er ved at udvikle.
Først vil jeg lige nævne, at min checkboxliste ligger i et formview.
Mine data kommer fra en SqlDataSource, hvor jeg har lavet en tabel (Sport), som indeholder 3 kolonner (ID - int)(Sports - varchar)(IsSelected - bit).
Under kolonnen (Sports - varchar) har jeg tilføjet en masse sportsgrene, som jeg har forbundet med checkboxlisten. Så man kan checke sine sportsgrene af.
-og ja, så ved jeg ikke rigtig, hvordan jeg skal forsætte!! :-(
Her kommer i første omgang et eksempel på, hvordan du viser dine CheckBoxe. Så skal jeg se om jeg kan udvide det i aften, til også at opdatere datatabellen i Sql Serveren.
På din side, i desing modus, starter du med at tilføje din SqlDataSource. Dette går jeg ud fra at du selv kan finde ud af, ellers må du sige fra, så forklare jeg det i detaljer.
Når det er gjort, tilføjer du en Repeater Control. I Repeateren sætter du Data Source'en til at være din SqlDataSource.
Når du har gjort dette skifter du til Source modus (nede i højre hjørne). Inde i repeateren, tilføjer du følgende:
Initialiseringsstrengen!? Gad vide om det ikke betyder connectionstring? Jeg hader danske fejlmeddelelser.
Tjek din connectionstring. Hvis du refererer til en connectionstring i web.config filen, så tjek at at denne reference er rigtig. I mit eksempel er ProviderName sat til "System.Data.SqlClient", hvis du ikke bruger Microsoft SQL Server, skal ProviderName ændres.
Hvis du stadig ikke får det til at virke, så prøv at copy/paste hele koden med dine modificeringer ind her. Så skal jeg se om jeg kan se nogle fejl.
Fandt ud af, at når jeg fjerner Checked='<%#Eval("IsSelected") %>' fra "source modus", så får jeg min liste med CheckBox'er frem! Så noget af det virker! :-)
Så ved ikke om det er min [IsSelected] kolonne, som er opbygget forkert eller hvad!? Fordi [sports] går fint igennem!
IsSelected - kolonne egenskaber: Name: IsSelected Allow Nulls: Yes Data Type: bit Full-text Specification: No Identity Specification: No Is Sparse: No
Nu virker det sq perfekt! :-) Der var angivet NULL værdier i IsSelected kolonnerne. Så rettede dem til False.
Har dog lige en anden ting - Hvordan gemmer jeg de valgte checkbox-informationer?? Lige nu, opdatere jeg vel bare databasen-informationerne.
Kører nederstående standard script-tutorial, til createuserwizard. Kunne du måske tilføje noget c# til scriptet, så det gemmer de valgte checkbox-informationer og så det hænger sammen med resten af scriptet? Så vil det bare være fantastisk!
public partial class CreateNewWizard : System.Web.UI.Page {
// CreatedUser event is called when a new user is successfully created public void CreateUserWizard1_CreatedUser(object sender, EventArgs e) {
// Create an empty Profile for the newly created user ProfileCommon p = (ProfileCommon) ProfileCommon.Create(CreateUserWizard1.UserName, true);
// Populate some Profile properties off of the create user wizard p.Country = ((DropDownList)CreateUserWizard1.CreateUserStep. ContentTemplateContainer.FindControl("Country")).SelectedValue; p.Gender = ((DropDownList)CreateUserWizard1.CreateUserStep. ContentTemplateContainer.FindControl("Gender")).SelectedValue; p.Age = Int32.Parse(((TextBox)CreateUserWizard1.CreateUserStep. ContentTemplateContainer.FindControl("Age")).Text);
// Save the profile - must be done since we explicitly created this profile instance p.Save(); } }
Du må tilføje en UserId eller UserName kolonne til Sport tabellen. Derudover må du gøre så den allerede eksisterende kolonne er en identity kolonne. På denne måde vil id'en autoinkrementere, og du vil kunne se hvilken bruker rækkerne hører til.
Så skal du tilføje en Insert query til din SqlDataSource. Eksempeltvis INSERT INTO Sport (Id, UserId, Sports, IsSelected) VALUES(@userId, @sports, @isSelected)
Opret tilhørende @userId, @sports og @isSelected parametre.
Problemet med dette er, at før brugeren er oprettet, vil han ikke logge i databasen, og hvilke Checkboxe skal da hentes op? Dette kan løses ved at have en Anonymous bruger med tilhørende checkboxe, som hentes op fra databasen, hvis brugeren ikke er oprettet.
Jeg kunne nok godt have lavet et bedre eksempel til dig, men jeg er taget på ferie siden min sidste kommentar. Nu sidder jeg ved en lånt computer der ikke har visual studio installeret, så det er lidt svært at skrive eksemplet.
Jeg kommer tilbage fra ferie om 2 uger. Hvis det er for lang tid at vente, kan du eventuelt oprette et nyt spørgsmål :-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.