Avatar billede gurvic Nybegynder
20. maj 2004 - 19:43 Der er 2 kommentarer og
1 løsning

checkbox checked

hejsa
jeg skal have lavet sådan at alt fra min database skal listes og udfra hver kollonne skal der være en checkbox, jeg har gjort det sådan her men ved ikke helt om det er rigtigt

<form runat="server">                   
<asp:Repeater id="dgData" runat="server">
<itemtemplate>
<%# DataBinder.Eval(Container.DataItem,"Opskriftnavn")%>
<ASP:checkbox id="checkboxslet" runat="server" />
<br><br>
</itemtemplate>
</asp:Repeater>
<ASP:button OnClick="SubmitBtn" text="Slet de valgte opskrifter" runat="server" />
</form>

men det ser nu rigtigt ud på skærmen. Mit spørgsmål nu er hvordan finder jeg ud af hvilke checkboxe der er valgt, det skal jeg bruge til at slette de enkelte kolloner.
Håber i forstår hvad jeg mener og kan hjælpe.
Avatar billede casper_skovgaard Nybegynder
21. maj 2004 - 09:43 #1
Jeg har ikke den store erfaring i Repeater control'en, men det ser ud som om id på alle checkbokse vil være det samme. Det må de ikke... Dine kolloner har vel også et id, det kunne derfor være en god ide at checkboks id'et indeholder det kolloneid som skal slettes.
Jeg har lavet en ligende løsning; når siden submittes kaldes DeleteDocuments, som initialiserer en ArrayList som skal indeholde id'erne på de checkbokse som er markerede. ArrayList'en udfyldes af RecurseControls som gennemløber alle controls på siden.

Her er koden, håber du kan bruge den:


        private void DeleteDocuments()
        {
            arDocIDs = new ArrayList();
            RecurseControls(Page);
            CurrentAction.Value = "";

            foreach( string x in arDocIDs)
            {
                HandleDeleteDocument(x);
            }

        }


        private void RecurseControls( Control c)
        {
            foreach( Control temp in c.Controls)
            {
                if( temp.HasControls())
                {
                    RecurseControls( temp);
                }
                else
                {
                    if( temp.GetType() == typeof(System.Web.UI.WebControls.CheckBox))
                    {
                        if( ((CheckBox) temp).Checked)
                        {
                            arDocIDs.Add(temp.ID);
                        }
                    }
                }
            }
        }


/Casper
Avatar billede gurvic Nybegynder
21. maj 2004 - 10:30 #2
er stadig meget ny i det her.. prøver lige om jeg kan gennemskue din kode...

men hold da op havde nok siddet lidt for mange timer igår... idag meget mere frisk laver jeg jo bare min checkboxlist sådan har

    sql = "SELECT * FROM opskrift order by opskriftnavn";
              checkCommand = new OleDbCommand(sql, objConnection);
                    checkReader = checkCommand.ExecuteReader();       
                    //int OpId;
                  //OpId = checkReader.GetInt32(0);

                   
                    checkData.DataSource = checkReader;       
                  checkData.DataValueField = "opskriftnavn";
                    checkData.DataBind();
                    checkReader.Close();


og i html:

<ASP:checkboxlist id="checkData" runat="server" />

der er jo heller ingen grund til at gøre det sværere for en end højst nødvendigt ;)
Avatar billede gurvic Nybegynder
21. maj 2004 - 10:35 #3
sørme om jeg så ikke selv kunne finde en løsning...

void SubmitBtn(Object source, EventArgs e)
{
string sMessage;
sMessage ="";
for (int i=0; i<checkData.Items.Count; i++) {
        if (checkData.Items[i].Selected)
        {
        sMessage = sMessage + checkData.Items[i].Text;
        sMessage = sMessage + "<br />";
        }
}

if (sMessage!= "")
{
Response.Write(sMessage);
}
else
{
Response.Write("hmm finder ingen");
}
}
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