2016-07-02 5 views
0

0 Ich habe über 100 asp.net-Schaltflächen, die ich die BackColor und Text direkt aus einer Datenbank festlegen müssen, wenn ich das herausfinden kann ich eine 400+ Zeile Select-Anweisung ersetzen mit etwa 10 Zeilen Code. Keine der unten genannten Konvertierungsmethoden funktioniert, wenn sie dies taten, könnte ich die b.ID durch die Variable c in der If-Klausel ersetzen.Wie eine Zeichenfolge in einem WebControl.Button

Sub Page_Load(sender As Object, e As EventArgs) 
    Dim taR As New DsReadyTableAdapters.taReady 
    Dim dtR As New DsReady.ReadyDataTable 
    taR.Fill(dtR) 
    Dim x As Integer = 1 
    Dim ss As String 
    Dim t As Type 
    For Each b In form1.Controls 
     t = b.GetType 
     If t.Name = "Button" Then 
      Dim c As System.Web.UI.WebControls.Button = CType(b.ID, System.Web.UI.WebControls.Button) 'tried both, doesn't work 
      Dim c As System.Web.UI.WebControls.Button = DirectCast(b.ID, System.Web.UI.WebControls.Button) 'tried both, doesn't work 
      ss = CStr(b.ID).Substring(6) 
      If ss > 122 And ss < 126 Then 
       b.ID.BackColor = Drawing.ColorTranslator.FromHtml(dtR(x).Color) 'b.ID is string so doesn't work 
       b.ID.Text = dtR(x).Num 
       x += 1 
      End If 
     End If 
    Next b 
End Sub 

Ich habe auch eine Controls.OfType-Klausel in der For Each Anweisung versucht, unter Verwendung der Ergebnisse nur auf die Tasten zu verengen, aber ohne Erfolg. Ich bin bereit, dies auch mit jQuery zu tun, aber habe keine einfache Methode gefunden, die Daten aus der Datenbank zu ziehen, die so einfach ist wie das, was ich benutze. Ihre Hilfe wird gerne in Anspruch genommen.

Antwort

0

Eigentlich fand ich, dass jQuery eine einfache einfache Möglichkeit bietet, um dies zu erreichen, durch Elemente HTML laufen, Knöpfe in diesem Fall. Fügen Sie den Schaltflächen, nach denen Sie suchen, einen Klassennamen hinzu. Danke für Ihre Hilfe.

function dealer() { // for Deal 
     var i = 0; 
     $('.deal').each(function(){ //need class="deal" 
      var chit = deal[i]; 
      if (chit.length == 2) { 
       var v = chit.slice(0, 1); 
       var c = chit.slice(1); 
      } else { // 3 
       var v = chit.slice(0, 2); 
       var c = chit.slice(2); 
      } 
      (this.value) = v; // Number 
      switch (c) { 
       case "r": 
        (this.style.backgroundColor) = "red"; // Color 
        break; 
       case "b": 
        (this.style.backgroundColor) = "lightblue"; 
        break; 
       case "g": 
        (this.style.backgroundColor) = "gray"; 
        break; 
       case "o": 
        (this.style.backgroundColor) = "orange"; 
        break; 
      } // switch 
      i++; 
      event.preventDefault(); 
     }); //deal 
    }; // dealer 
0

versuchen

Dim button As Button = CType(form1.Controls["your_button_name"], Button) 
+0

wo genau würden Sie das in den Code, vor der 'For Each' Aussage setzen? Ich versuche, alle Schaltflächen zu durchlaufen, damit ich nicht sehe, wie ich 'your_button_name' verwenden kann. Danke – NitroMuse

+0

"Versuch" ist keine angemessene Beschreibung für eine Antwort. Code-only-Lösungen gelten als Inhalte von schlechter Qualität und können dazu führen, dass Ihre Antwort gelöscht wird. –

+0

setzen Sie es in Ihre Schleife, your_button_name = b.ID – Jack

Verwandte Themen