Aangevinkte checkboxen in een datagrid gebruiken

Status
Niet open voor verdere reacties.

gast0514

Gebruiker
Lid geworden
8 okt 2007
Berichten
43
Goedemorgen,

Ik heb een DataBase (DataGrid) met daarin op iedere regel een checkbox.
Nou wil ik 'iets doen' met de regels waarvan de checkbox aangevinkt is
(bijvoorbeeld de gegevens van die regel in een TextBox zetten ofzo, maar
dat is nou nog niet het belangrijkste).

Kan iemand me hierbij helpen, of me in ieder geval op weg helpen? Een
dag googlen heeft me niks opgeleverd!
 
Laatst bewerkt door een moderator:
Kan je de code laten zien wat je al gemaakt hebt?
Dan kunnen we ons een voorstelling maken van wat je precies wil :)
 
In principe heb ik nog geen code hoeven te gebruiken voor dit gedeelte. (ik gebruik
het liefst zoveel mogelijk de muis i.p.v. het toetsenbord ;) )

Ik heb een Table 'CheckBoxTest' met daarin CheckBoxID (int) en CheckBox (bit).
Dit zijn dus 2 comlums, eentje waar je een getal voor CheckBoxID in kan vullen
en eentje waar je de Checkbox aan kan vinken.

Wanneer de CheckBox achter CheckBoxID 1 aangevinkt is wil ik die die 1 in een
TextBox zetten.

Ik heb een flinke lap code gevonden waar ik waarschijnlijk wel iets aan heb, maar
omdat er een hoop dingen in staan die ik (nog) niet begrijp zie ik door de bomen t bos
niet meer:

Code:
// function to save the selection to the DB
public bool SaveSelection()
{
// declare instance of LAR
NAA.DAL.LAR.Reader objLar = new NAA.DAL.LAR.Reader();
// declare variables
string strULN;
int intQualID;
string strQualDate;
string strCentreName;
string strEndorsement;
CheckBox chk = new CheckBox();
// check each datagrid item
foreach (DataGridItem i in dgQualifications.Items)
{
// find chkDec
chk = (CheckBox) i.FindControl ("chkDec");
// check if it is selected
if (chk.Checked == true)
{
// Decline this row
}
// find chkReq
chk = (CheckBox) i.FindControl ("chkReq");
// check if it is selected
if (chk.Checked == true)
{
// get the details
strULN = dgQualifications.Items[i].Cells[0].Text;
intQualID = dgQualifications.Items[I].Cells[2].Text;
strQualDate = dgQualifications.Items[1].Cells[3].Text;
strCentreName = dgQualifications.Items[1].Cells[4].Text;
strEndorsement= dgQualifications.Items[1].Cells[5].Text;
// Request this row
objLar.SavePossibleQualificationClaim(strULN, intQualID, strQualDate, strCentreName, strEndorsement);
//objLar.FlagPossibleClaimAsProcessed();
}
}
// if it got here all ok
return true;
}

Ik hoop dat je je nou een voorstelling kan maken van wat ik wil :cool:
 
Laatst bewerkt door een moderator:
je kan nakijken of een checkbox aangevinkt staat door de .checked property van een checkbox.

Dus dan zou je op zoiets komen als:

Code:
if(cb1.Checked == true) {
   txt1.Text = 1;
}
if(cb2.Checked == true){
   txt2.Text = 2;
}
//enz
 
Hoi Killermenace, bedankt weer voor je reactie.

De code die je me geeft kan ik prima toepassen op 'losse' checkboxen die ik een naam kan geven. Maar wanneer de checkboxen in een datagrid staan kan ik ze toch geen naam geven?

En daarbij dan kan het zijn dat er in mijn programma enkele tientallen regels in een datagrid komen. Zou hier geen andere oplossing voor zijn?
 
Laatst bewerkt door een moderator:
Een checkbox die gebruikt wordt in een datagrid representeert een booleaanse datatype en wordt dus gebruikt om die waarde weer te geven of te veranderen (false/true) op basis van de check value. Wanneer je deze checkbox wil gebruiken om bijvoorbeeld bepaald elementen dan wel dan niet te tonen ga je moeten werken met de waarde in de database zelf (eventueel in een variabele). Maw je gaat bij elke verandering in een checkbox een update doen en uw textvelden tonen of verbergen op basis van de waarde in de database.

succes
 
Ik wou daarstraks al een reactie geven op deze topic, maar ik vond ze eigenlijk een beetje "ver gezocht". Na het lezen van bovenstaande reactie denk ik nu dat ze eigenlijk "right to the point" was...
Oké... hier gaan we dan...
De gegevens die je wergeeft in je datagrid tonen perfect de gegevens uit je database. Maaar daar stopt het verhaal dan ook!
Verder kan je met de INHOUD van die datagrid NIETS aanvangen.
Als je er verder iets mee wil doen, dan zal je hoedanook de gegevens uit je database moeten evalueren.in een apart stukje programmacode...

EDIT:
tenzij idd een waarde binnen de database zelf aanpassen... dwz: als je een checkbox van true op false (of omgekeerd) zet zal dat in de database ook gebeuren
 
Laatst bewerkt:
Bedankt voor de reacties en de schop in de goede richting!

Wat ik wilde maken heb ik nu een heel eind voor elkaar.
Ik heb nog 1 probleempje in mijn SQL gedeelte:

Voor mijn programma is het nodig dat ik alle gegevens uit een geselecteerde regel samenvoeg tot EEN string

hiervoor heb ik gebruikt:

Code:
SELECT        KleurNaam + ',' + KleurCode + ',' + MateriaalNaam + ',' + MateriaalCode AS String
FROM            Plaat
WHERE CheckBox = 1

Dit werkt goed wanneer de string enkel uit CHAR waardes bestaat, maar wanneer een of meer van deze gegevens INT-waardes zijn werkt de code niet meer.
Heeft iemand een idee wat ik fout doe?

Alvast bedankt!
 
Laatst bewerkt:
Hey Killermenace, zou dit ook te maken zijn als je de waardes uit 2 of meer hokjes uit een DataGrid moet halen, i.p.v. 2 berekeningen?

Groeten Mister DataGrid ;)
Hetgene wat je zou kunnen doen is eerst de dingen alles apart in variabelen zetten welke geen String zijn.
Deze omzetten naar een String en vervolgens weer terugzetten in de zin.
 
Laatst bewerkt door een moderator:
Oké dat volg ik wel. Dus per hokje moet ik een variabele maken die de waarde van het hokje heeft.

Om dat te doen, lijkt het mij dat ik moet weten hoe het desbetreffende 'hokje' heet.

Kan dat bijv. zijn:
Code:
this.plaatDataGridView1.dataGridViewTextBoxColumn1."zoveelsteHokje"
of zit ik dan helemaal fout?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan