2017-08-07 2 views
0

Ich versuche, eine Schaltfläche in einem Webformular sichtbar zu machen, wenn Daten verfügbar sind. Ich habe eine Datenbank mit einem Spaltennamen NCID, dann in einer Ansichten zähle ich die NCIDs. und ich habe btn1 bis btn9 versteckt. Wenn NCID Count 1 ist, zeigen Sie btn1, an, wenn NCID Count 2 ist, dann zeigen Sie btn1 und btn2 an.Schaltflächen ein- und ausschalten basierend auf dem Datenbankwert in C#

Wie kann ich die Schaltfläche ID zielen, um es sichtbar zu machen oder es zu verbergen?

Ich habe Folgendes versucht, aber es funktioniert nicht für mich.

while (sr.Read()) 
{ 
    string NCID = sr["NCID"].ToString(); 
    int nc2 = Convert.ToInt32(NCID); 
    int x = 1; 

    do 
    { 
     string btnx = "btn" + x; 
     btnx.Visible = true; 

     x++; 
    } while (x <= nc2); 
} 

con.Close(); 
+0

Ist das Webforms, mvc, wpf? – Steve

+0

'Ich habe folgendes versucht, aber es funktioniert nicht für mich!' Definiere 'nicht funktioniert'. Was hast du erwartet? Was wirklich passierte? – mjwills

+0

Sorry, es ist ein Webformular –

Antwort

1

Wenn dies eine Windows-Anwendung Forms können Sie verwenden:

Controls.Find(btnx, true).First().Visible = true; 

Find control by name from Windows Forms controls

https://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.find(v=vs.110).aspx

Wenn es WebForms ist, können Sie verwenden:

FindControl(btnx).Visible = true; 

https://msdn.microsoft.com/en-us/library/486wc64h(v=vs.110).aspx

+0

Ich habe versucht Controls.FindControl (btnx) .Visible = true; dann erhalte ich einen Fehler "ControlCollection enthält keine Definition für FindControl" –

+0

Können Sie Ihre Frage aktualisieren, um zu zeigen, wie Sie Steuerelemente in HTML deklarieren? – Jared

+0

Zeichenfolge NCID = sr ["NCID"]. ToString(); int nc2 = Convert.ToInt32 (NCID); int x = 1; do { Zeichenfolge btnx = "btn" + x; Controls.FindControl (btnx) .Visible = true; x ++; } while (x <= nc2); –

0

(siehe jareds beantworten)

for (int i = 0; i < x; i++) //smaller then ammount of lines returned  
{ 
    Controls.Find(btnx + i).Visible = true; //add visibility to wichever control (found by name) you wanted to add 
} 
Verwandte Themen