Avatar billede joshin Nybegynder
15. maj 2005 - 02:15 Der er 3 kommentarer og
1 løsning

CheckBoxList viser ikke Selected ved Enabled = false

Hej Eksperter,

Jeg har 2 CheckBoxLister som bliver fyldt fra database udtræk.
Nogle af værdierne må brugeren gerne ændre på, andre  må der ikke ændres på.

Jeg ahr valgt at lave 2 CheckBoxLister og sætte  Enabled = false på den ene, som så indeholder de værdier der ikke må ændres på.

Mit problem er at når jeg itererer igennem listen er der ingen der er Selected, selv de var sat, og blev vist markeret.

Gode idéer søges
Avatar billede snepnet Nybegynder
15. maj 2005 - 09:16 #1
hej joshin.

hmm.... det burde ikke så gerne drille :o(

prøv at se her ... her er to checkboxlister (den ene med enabled=false), som jeg bare har sat in i aspx'en.

<asp:CheckBoxList id="CheckBoxList1" runat="server">
    <asp:ListItem Value="erte">erte</asp:ListItem>
    <asp:ListItem Value="ertert">ertert</asp:ListItem>
    <asp:ListItem Value="ertergdf">ertergdf</asp:ListItem>
</asp:CheckBoxList>
<P>&nbsp;</P>
<asp:CheckBoxList id="CheckBoxList2" runat="server" Enabled="False">
    <asp:ListItem Value="erte">erte</asp:ListItem>
    <asp:ListItem Value="ertert" Selected="True">ertert</asp:ListItem>
    <asp:ListItem Value="ertergdf" Selected="True">ertergdf</asp:ListItem>
</asp:CheckBoxList>

dem kigger jeg så igennem i page_load

private void Page_Load(object sender, System.EventArgs e)
{
    Response.Write("Første liste<br>");
    foreach(ListItem li in this.CheckBoxList1.Items)
    {
        if(li.Selected)
            Response.Write("Selected<br>");
    }
    Response.Write("Anden liste<br>");
    foreach(ListItem li in this.CheckBoxList2.Items)
    {
        if(li.Selected)
            Response.Write("Selected<br>");
    }
}

hvilket giver følgende output :

Første liste
Anden liste
Selected
Selected

altså ... som forventet.

kan du ikke fortælle på hvilken måde det scenarie du har afviger fra ovenstående ?

sætter du listerne ind programmatisk, og i hvilken metode ?
i hvilken metode prøver du at finde ud af hvilke items der er valgt ?
og den slags.

håber du lige har et par ekstra ord.

mvh
Avatar billede joshin Nybegynder
15. maj 2005 - 13:11 #2
Lidt kode-snips fra en forsøgsside:
i den virkelige verden bindes listen fra en database

aspx:
  <asp:CheckBoxList id="cbl1" runat="server"></asp:CheckBoxList>
  <asp:CheckBoxList id="cbl2" runat="server"></asp:CheckBoxList>
  <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
  <asp:Literal id="litTxt" runat="server"></asp:Literal>

cs:
  private void Page_Load(object sender, System.EventArgs e)
  {
    if (!Page.IsPostBack)
      {
      BindList();
...

  private void BindList()
  {
    ListItem item = new ListItem("aaa","1");
    item.Selected = true;
    cbl1.Items.Add(item);
    item = new ListItem("bbb","2");
    cbl1.Items.Add(item);
    item = new ListItem("ccc","3");
    cbl1.Items.Add(item);

    item = new ListItem("ddd","4");
    cbl2.Items.Add(item);
    item = new ListItem("eee","5");
    item.Selected = true;
    cbl2.Items.Add(item);
    item = new ListItem("fff","6");
    cbl2.Items.Add(item);
    cbl2.Enabled = false;
  }

  private void Button1_Click(object sender, System.EventArgs e)
  {
    foreach (ListItem item in cbl1.Items)
    {
      litTxt.Text += "<br>" + item.Text + ": " + item.Selected;
    }
    foreach (ListItem item in cbl2.Items)
    {
      litTxt.Text += "<br>" + item.Text + ": " + item.Selected;
    }
  }

Output før: Output efter:
V aaa      V aaa
  bbb        bbb
  ccc        ccc
  ddd        ddd
V eee        eee
  fff        fff

              aaa: True
              bbb: False
              ccc: False
              ddd: False
              eee: False
              fff: False

Tilsyneladende forsvider selected markering ved postback
Avatar billede snepnet Nybegynder
15. maj 2005 - 17:19 #3
du har jo fuldstændig ret ?!?
.
.
.
hmm... det lader til at være en helt specifik ting for <input type="checkbox" - værdier bliver ikke postet når den er disabled :o(

(i hvert fald ifølge den her : http://www.mcse.ms/archive110-2004-2-401820.html)

mvh
Avatar billede joshin Nybegynder
15. maj 2005 - 21:56 #4
Hmm, så må jeg lave min egen contol...
Øv øv øv
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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