Her er et eksempel på bruk av ulike TableStyles avhengig av type på den valgte objekt i en Datagrid. Jeg har 2 rutenett, hver hekta på ExpressionHandles. Jeg ønsker å vise et annet sett med kolonner, avhengig av type objekt i toppen grid.Firstly søknaden trenger å vite når et nytt objekt er valgt. Her en CurrencyManager blir koblet opp. dgStock er en Datagrid, er ehRoot en ExpressionHandle inneholder Stock stedene.
privat cmStock: CurrencyManager; .... prosedyre TfrmStock.TfrmStock_Load (avsender: System.Object; e: System.EventArgs); begynne cmStock: = CurrencyManager (dgStock.BindingContext [Self.ehRoot]); Inkluder (cmStock.PositionChanged, Self.StockGridRowChanged); end;
Deretter tilfelle kode som får sparken når CurrencyManager posisjonen endres. Jeg gå tilbake til å bruke CurrencyManagerHandle som brukes til å knytte ristene 2 til å hente det aktuelle objekt. Jeg har bare brukt den CurrencyManager å varsle meg om at toppristen har endret
prosedyre TfrmStock.StockGridRowChanged (avsender: System.Object; e: System.EventArgs);. Begynne ... hvis Lager (cmhStock.Element.AsObject ) .StockCategory.IsBoot deretter begynne dgStockItems.TableStyles.Clear; dgStockItems.TableStyles.Add (self.tsItemsWithSole); ende annet begynne dgStockItems.TableStyles.Clear; dgStockItems.TableStyles.Add (self.tsItemsNoSole); enden, ... end;
å gjøre denne koden mer effektiv, er det fornuftig å bare endre TableStyle hvis ikke den nåværende TableStyle. For å gjøre dette, kan vi spørre TableStylesCollection hvis den inneholder de nødvendige TableStyle. Dette fungerer hvis vi bare måtte ha en TableStyle aktiv om gangen
begynne pnlItems.Visible:. = True; pnlPricing.Visible: = true; hvis Lager (cmhStock.Element.AsObject) .StockCategory.IsBoot og ikke dgStockItems.TableStyles.Contains (self.tsItemsWithSole) da begynne dgStockItems.TableStyles.Clear; dgStockItems.TableStyles.Add (self.tsItemsWithSole); ende annet hvis ikke Stock (cmhStock.Element.AsObject) .StockCategory.IsBoot og ikke dgStockItems.TableStyles.Contains (self.tsItemsNoSole) da begynne dgStockItems.TableStyles.Clear; dgStockItems.TableStyles.Add (self.tsItemsNoSole); end, end,
Jeg håper denne korte artikkelen kommer i hendig til andre
.
Dynamiske TableStyles Basert på Object Type
Previous:Debugging IIS ISAPI modules
Next Page:Lese et kodet value