Avatar billede wolker Nybegynder
22. januar 2003 - 01:46 Der er 5 kommentarer og
1 løsning

Dynamisk checkbokse

Hvordan kan man oprette checkbokse dynamisk. Et eksempel.

Jeg har x antal rækker med tekster der skal vises.
Efter hver række skal der være en checkboks der kan markeres.
Teksten kommer fra en database, men ikke via et select statment, nej de blive udvalgt hel tilfældig samt et tilfældig antal, men den del har jeg styr på.

Dvs. på skærmen vises eksempelvis flg.

Spørgsmål 1        ja/nej (checkbox)
Spørgsmål 2        ja/nej
Spørgsmål 3        ja/nej
o.s.v

Og en submit-knap.

Så mit spørgsmål er, hvordan kan det gøres, altså få vist ovenstående skærmbilled samt checke hvad der er valgt.
Jeg vil helst have et lille eksempel, da et godt eksempel siger mere en 1000 ord :)

Jeg kender en del til Asp, men er rimelig ny inden for .net
Avatar billede a1a1 Novice
22. januar 2003 - 02:16 #1
checkboxlist er der noget der hedder
hvis du i under index i din dotnet framework hjælp skriver
CheckBoxList class, about CheckBoxList class
(og trykker enter)
er der et simpelt eksempel

men du kan sagtens give den en datasource, så den bliver "fyldt" fra en database, men det har jeg ikke lige et eksempel på

;)
Avatar billede askhoej Praktikant
22. januar 2003 - 08:41 #2
Du opretter ganske rigtig en ny CheckBoxList og i din codebehind gør du følgende:


protected System.Web.UI.WebControls.CheckBoxList cblTest;

private void Page_Load(object sender, System.EventArgs e)
{
  if(!IsPostBack)
  {

    cblTest.DataSource = ElementerFraDB();
    cblTest.DataBind();
  }
}


//Metode der returnerer elementer til CheckBoxList
protected DataTable ElementerFraDB()
{
  //Connection to DB
  OleDbConnection con = new OleDbConnection(Application["strConnect"].ToString());
  OleDbDataAdapter adpt = new OleDbDataAdapter("SELECT id,name FROM table",con);
  DataSet ds = new DataSet();
  adpt.Fill(ds,"table");
  return ds.Tables["table"];
}

Og når du skal opsamle hvilke der er tjekket af gør du sådan her:

for(int i = 0; i < cblTest.Items.Count; i++)
{
  if ( cblTest.Items[i].Selected )
  {
    //Tada                   
  }
}


Håber du kan bruge det :-)

/askhoej
Avatar billede wolker Nybegynder
23. januar 2003 - 00:46 #3
askhoej>>

Det virker ikke helt, den giver det rigtige antal checkbokse, men i teksten efter boksen skriver den 'System.Data.DataRowView'

Jeg har kogt dit eksempel ned til flg. Hvad er der galt ??

private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
string ConStr = "Provider=SQLOLEDB;Persist Security Info=False;User  ID=sa;Initial Catalog=pubs;Data Source=server1";
OleDbConnection con = new OleDbConnection(ConStr);
OleDbDataAdapter adpt = new OleDbDataAdapter("SELECT job_id,job_desc FROM jobs",con);
DataSet ds = new DataSet();
adpt.Fill(ds,"table");
cblfood.DataSource = ds.Tables["table"];
cblfood.DataBind();
}
        }
Avatar billede askhoej Praktikant
23. januar 2003 - 08:33 #4
Prøv:

private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
string ConStr = "Provider=SQLOLEDB;Persist Security Info=False;User  ID=sa;Initial Catalog=pubs;Data Source=server1";
OleDbConnection con = new OleDbConnection(ConStr);
OleDbDataAdapter adpt = new OleDbDataAdapter("SELECT job_id,job_desc FROM jobs",con);
DataSet ds = new DataSet();
adpt.Fill(ds,"table");
//Tilføjelser
cblfood.DataTextField = "job_desc";
cblfood.DataValueField = "job_id";
cblfood.DataSource = ds.Tables["table"];
cblfood.DataBind();
}
        }

/askhoej
Avatar billede wolker Nybegynder
26. januar 2003 - 22:51 #5
askhoej>>
Jep det virker, tak
Avatar billede charmekbh Nybegynder
06. januar 2004 - 18:47 #6
Hvis jeg også vil udfylde checked værdien fra et dataset hvad gørjeg så?
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