2011-01-06 16 views
0

Ich erstelle derzeit ein dynamisches URL-Tab-System, mit dem der Benutzer angeben kann, welche URLs auf einem Tab-Control angezeigt werden sollen.Dynamische Checkbox-Liste

In der Datenbank habe ich die folgenden Spalten.

userID, int URLname var Aktiviert Bit

ich die Daten wieder in Ordnung, ziehen aber was ich versuche, sie ist eine Checkbox-Liste mit dem URLname bevölkern und ihren Status auf einer Seite Benutzeroptionen, so dass sie sagen können, Welche Tabs sollen angezeigt werden?

Ich habe die folgenden Methoden geschrieben, um die URLs zu erhalten und die Checkboxen zu erstellen, aber ich bekomme immer den folgenden Fehler.

ex = { "InvalidArgument = Wert von '1' gilt nicht für 'index' \ r \ nParameter Name:. Index"}

Es liest die erste Zeile in Ordnung, aber wenn er trifft die zweite Zeile, Wird zurückgegeben, bekomme ich diesen Fehler.

Hat jemand irgendwelche Ideen?

Dank

private void GetUserURLS() 
    { 

     db.initiateCommand("[Settings].[LoadAllUserURLS]", CommandType.StoredProcedure); 

     sqlp = db.addParameter("@UserID", _UserID, SqlDbType.Int, ParameterDirection.Input); 
     sqlp = db.addParameter("@spErrorID", DBNull.Value, SqlDbType.Int, ParameterDirection.InputOutput); 

     db.executeCommand(); 

     CreateCheckBoxes(db.getTable(0).Rows); 
     db.releaseCommand(); 
    } 


    private void CreateCheckBoxes(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(); 
       bool enabled = Convert.ToBoolean(row["Enabled"]); 

       CheckedListBox CB = new CheckedListBox();    
       CB.Items.Insert(i, URLName); 

       CB.Tag = "CB" + i.ToString(); 

       checkedListBox1.Items.Add(CB); 

       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 - A notification has been sent to development"; 
      Classes.ShowMessageBox.MsgBox(FriendlyError, "There has been an Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 
+0

Welche Programmiersprache, Umgebung, etc ??? –

+0

Es ist ein C# winform – Steve

Antwort

3

Sie sollten eine CheckedListBox als Element an einen CheckedListBox nicht hinzufügen. Versuchen Sie, nur die anstelle URLname Zeichenfolge hinzufügen, das heißt

  string URLName = row["URLName"].ToString(); 
      bool enabled = Convert.ToBoolean(row["Enabled"]); 

      checkedListBox1.Items.Add(URLName, enabled); 

ich denke, das ist, was Sie zu erreichen versuchen.

+0

Danke John, das funktioniert super! Danke für Ihre Hilfe – Steve