webForumDet fria alternativet

dålig lösning med get och set...

.NET

3 svar · 299 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Jag tänkte visa en av tre tables (vanlig html table fast runat server) beroende på vilket värde jag skickar in i kontrollen. Det fungerar men jag tror att det är riktig fulkod... skulle vilja koda så att man direkt kan skicka in vilken som ska vara synlig! Så här har jag gjort nu:

   
private int myTable;
public int MyTable
{
  set {
    myTable = value;
  }
}
    
protected void Page_Load(object sender, EventArgs e) {
        
  if (myTable == 1)
    MyTable1.Visible = true;
  else if (myTable == 2)
    MyTable2.Visible = true;
  else
    MyTable3.Visible = true;

}

Skulle vilja ha nåt sånt här men fattar inte riktigt hur jag ska göra:

   
private Table myTable;
public Table MyTable
{
  set {
    myTable.Visible = true;
  }
}
Medlem sedan dec. 19996 721 inlägg
#2

Det vore fult att exponera ut en Table som en property.

Exponera propertyn som en int eller en enum, och sätt visible på tabellerna direkt i property-seten (eller ännu hellre, använd en MultiView-kontroll runt tabellerna)

Medlem sedan sep. 2005673 inlägg
#3

Fast då måste jag väl ändå ha den där if-satsen (om än i property-seten)? Tänkte om man kunde göra det med mindre kod. Säg att jag har 10 olika tabeller (eller kanske ett dynamiskt antal) där en ska vara visible, då blir det en himla massa else if...?

Det är en meny i en usercontrol och jag sätter värdet så här:

<UC:Menu ID="Menu" SelectedMenu="1" runat="server" />
Medlem sedan dec. 19996 721 inlägg
#4

Om du vill ha ett numeriskt värde på selectedMenu kan du ju lägga motsvarande namn på View-kontrollerna (View1, View2 etc.), och...

View view = mvMulti.FindControl(string.Format("View{0}",selectedMenu)) as View;
if (view != null) {
   mvMulti.SetActiveView(view);
}
465 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
186 ms — deklarationer (db)
129 ms — hämta statistik (db)
147 ms — hämta tråd, inlägg och bilagor (db)
184 ms — ändringar (db)