Avatar billede CodingJoe Nybegynder
07. november 2012 - 23:33 Der er 6 kommentarer og
1 løsning

Min CheckBoxList på min ASP.Net side

Jeg er ved at rive hår ud af min sparsomme isse.

Jeg har en CheckBoxList (Lad os kalde den 'minCheckBoxListe') kontrol på min aspx side.

Jeg har en metode, der returnerer en CheckBoxList med elementer og det hele.

Hvorfor kan jeg ikke gøre følgende:

minCheckBoxListe = MinMetodeDerReturnererMinCheckBoxListe();
minCheckBoxListe.DataBind();

Min side er bare tom :(

Fylder jeg minCheckBoxListe manuelt, så kommer checkboxes fint frem. Hvad overser jeg?
Avatar billede janus_007 Nybegynder
09. november 2012 - 22:17 #1
Du skal angive datasource:

minCheckBoxListe.DataSource = MinMetodeDerReturnererMinCheckBoxListe();
minCheckBoxListe.DataBind();
Avatar billede CodingJoe Nybegynder
10. november 2012 - 11:02 #2
Har jeg prøvet inden jeg skrev indlægget.
Avatar billede janus_007 Nybegynder
10. november 2012 - 20:54 #3
Hvordan ser output udfra MinMetodeDerReturnererMinCheckBoxListe?

Hvis du har mere end en property skal du angive DataTextField og DataValueField :)
Avatar billede CodingJoe Nybegynder
11. november 2012 - 00:15 #4
Jeg har et navn og en id.
Jeg blev nødt til at sende min CheckBoxList med som argument på min metode, så kunne jeg tilføje listitems direkte på den, istedet for at lave en instans af CheckBoxList og returnere den til minCheckBoxListe :(

Prøv at lave en lille metode, der returnere en CheckBoxList, hvori du har tilføjet et par listitems.

Drag & drop en checkbokslist i din markup fil og kald den minCheckBoxListe.

Prøv herefter at sætte minCheckBoxListe = kaldet til din metode.

minCheckBoxListe.Datasource fik min kode til at kompilere, men minCheckBoxListe var helt tom.
Avatar billede arne_v Ekspert
21. november 2012 - 02:40 #5
Der er et eller andet med life cycle som goer at det ikke virker.

Bedste workaround efter min mening er en placeholder.

Demo:

<%@ Page Language="C#" %>

<script runat="server">
private void metone(CheckBoxList cbl)
{
    cbl.Items.Add("A");
    cbl.Items.Add("B");
    cbl.Items.Add("C");
}

private CheckBoxList mettwo()
{
    CheckBoxList cbl = new CheckBoxList();
    cbl.Items.Add("X");
    cbl.Items.Add("Y");
    cbl.Items.Add("Z");
    return cbl;
}

protected void Page_Load(Object sender, EventArgs e)
{
    metone(cblone);
    //does not work:
    //cbltwo = mettwo();
    ph.Controls.Add(mettwo());
}
</script>

<form id="f" runat="server">
One:
<asp:CheckBoxList id="cblone" runat="server">
</asp:CheckBoxList>
<br>
Two:
<asp:CheckBoxList id="cbltwo" runat="server">
</asp:CheckBoxList>
<br>
Two modified:
<asp:PlaceHolder id="ph" runat="server">
</asp:PlaceHolder>
</form>
Avatar billede CodingJoe Nybegynder
22. november 2012 - 07:37 #6
Det ser fint ud. Jeg ordnede det ellers ved at sende min instanstierede listcontrol med som argument i min metode, og herefter populere den.

Smid bare et svar ind, da det er fedt at få et alternativ.
Avatar billede arne_v Ekspert
22. november 2012 - 16:13 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester