Wie bekomme ich die Element-ID in einer CheckedListBox?
Habe ich eine Methode, die zieht den url-Namen(varchar), ein urlID(int) und den Aktivierten status(bit) aus einer Datenbank und fügt die Ergebnisse zu einer CheckedListBox auf einer foreach-Schleife. Das problem, das ich habe, ist die checkedboxlist scheint nur einen Namen nehmen und seinen status überprüft. Was brauche ich, um in der Lage zu tun ist, wenn ein Benutzer fertig mit der Auswahl auf ein button-Ereignis liest es CheckedListBox und bekommt die URL, ID und status "aktiviert" kann ich dann also schreiben Sie diese zurück in die Datenbank.
Dies ist der code den ich verwende:
///<summary>
///Create url names in check box list.
///</summary>
///<param name="rows"></param>
private void CreateURLCheckBoxes(DataRowCollection rows)
{
try
{
int i = 0;
foreach (DataRow row in rows)
{
//Gets the url name and path when the status is enabled. The status of Enabled /Disabled is setup in the users option page
string URLName = row["URLName"].ToString();
int URLID = Convert.ToInt32(row["URLID"]);
bool enabled = Convert.ToBoolean(row["Enabled"]);
//Adds the returned to rows to the check box list
CBLUrls.Items.Add(URLName, enabled);
}
i++;
}
catch (Exception ex)
{
//Log error
Functionality func = new Functionality();
func.LogError(ex);
//Error message the user will see
string FriendlyError = "There has been populating checkboxes with the urls ";
Classes.ShowMessageBox.MsgBox(FriendlyError, "There has been an Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schritt 1: Erstellen Sie eine Klasse zu halten, den Namen und die Id mit einer ToString() überschreiben, die gibt den Namen
Schritt 2: Hinzufügen von Instanzen dieser Klasse, um Ihre CheckedListBox
Schritt 3: Cast SelectedItem zu UrlInfo und abrufen .Id
Würden Sie besser erstellen eine einfache Klasse mit einer
string
(Ihre url) und eineint
(die id), überschreiben Sie dieToString()
- Methode zur Rückgabe der url, und fügen Sie diese Objekte, um dieItems
Eigenschaft desCheckedListBox
.Wenn Sie das ausgewählte Objekt, müssen Sie nur zu werfen es in Ihre neue Klasse, und Sie können beide Eigenschaften.
Etwas wie:
Dann, wenn Sie die Objekte hinzufügen :
Diese Steuerung hat eine Value-Member-und ein Display-Mitglied. Ich denke, Sie können tun, was Sie brauchen, wenn Sie den Namen verwenden, da das display Mitgliedstaaten und die ID als value-member.