[ krdr @ 10.05.2005. 01:59 ] @
POstoje li komponente koje rade sa bazama (prepoznaju podatke) a da se ponasaju kao da su Delphijeve? Odnosno, ja u Data Gridu selektujem neki red, a ostala polja se popune, a da ne moram da pisem nikakav kod? |
[ krdr @ 10.05.2005. 01:59 ] @
[ dusty @ 10.05.2005. 15:28 ] @
Hmmm, da bindujes sve kontrole za isti data source ?!
BindingManager bi trebao da odradi populaciju drugih bindovanih kontrola. [ krdr @ 10.05.2005. 18:14 ] @
To sam i radio - ne radi na taj nacin
[ mmix @ 10.05.2005. 19:06 ] @
Nije mu top problem, kao okoreli Delphievac, kontam sta hoce
![]() On misli da kad doda novi red u grid da se sva polja postave na njihove default vrednosti. Tako radi Delphi grid. Medjutim .NET grid ne radi bas tako direktno. Da bi ostvario ovo u WinForms (nisam proverio ali mislim da je neizvodljivo u asp.net gridu) treba da uradis sledece: 1. DataGrid da vezes na tipizirani DataSet 2. U DataSet shemi, za zeljenu tabelu nadji polje iz tabele koje hoces da ima pocetnu vrednost, lociraj property "default" u "Properties" prozoru i unesi vrednost. To sto tabela u bazi ima default vrednost ne znaci nista gridu, mora da bude uneseno i u dataset. Ono sto je mene najvise nerviralo u .NET xsd shemi je da kad prevucete tabelu iz MSSQL (ili bilo koje druge) baze na xsd vs.net ucita definiciju svih polja iz tabele, ali ne prenese definisane default vrednosti ![]() ![]() [ mmix @ 10.05.2005. 19:14 ] @
Ups, izvinjavam se, omasih temu i to debelo
![]() (ajd da ne brisem ako nekom zatreba) Al evo resenja i za ovaj problem. Recimo da imas dataset koji se zove dataSet1 i u njemu tabelu Users. Grid si namestio da mu je DataSource = "dataSet1.Users" i DataMember = null, a treba da bude: DataSource = dataSet1 DataMember = Users preraspodeli ovako i radice ti ako si edit controle bindovao iz dizajnera. Onda ce sistem inicirati isti CurrencyManager za sve kontrole. U suprotnom ce biti dva currency managera, jedan za tabelu samu za sebe i jedan za tabelu iz dataseta. Iako su te dve tabele ustvari ista tabela, dva currency manager-a ce imati dva razlicita row pointera nad njom. [ krdr @ 11.05.2005. 07:46 ] @
To mi je trebalo!
Oba odgovora su mi trebala! A kako da namestim da selektujem ceo red? (ili da ja odustanem od vs.neta, neke stvari su dosta komplikovane u odnosu na delphi :) [ mmix @ 11.05.2005. 12:36 ] @
Verovatno si sakrio Row Header tako što si prebacio RowHeadersVisible na false. To je jedini način da korisnik selektuje ceo red.
[ Željko @ 11.05.2005. 14:52 ] @
Citat: mmix rece: Verovatno si sakrio Row Header tako što si prebacio RowHeadersVisible na false. To je jedini način da korisnik selektuje ceo red. Selekcija celog row-a u datagrid-u moze da se uradi ako user click-om na RowHeader ali moze i ovako: Code: Private Sub grid_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles grid.MouseDown Dim pt = New Point(e.X, e.Y) Dim hti As DataGrid.HitTestInfo = grid.HitTest(pt) If hti.Type = grid.HitTestType.Cell Then grid.CurrentCell = New DataGridCell(hti.Row, hti.Column) grid.Select(hti.Row) End If End Sub Kada user click-ne na datagrid cell selektuje se ceo row. pozdrav Željko [ krdr @ 11.05.2005. 18:20 ] @
@Zeljko
Hvala, ali tvoj primer je za Delphi, a meni treba za net :). U delphiju samo postavi row select na true :) Ipak, hvala, lep je trik [ Željko @ 11.05.2005. 19:15 ] @
Citat: krdr rece: @Zeljko Hvala, ali tvoj primer je za Delphi, a meni treba za net :) Ono sto sam napisao je VB.Net kod, a sto se tice Delphi-ja, nisam nista radio jos od prve godine fax-a (to je bila verzija Delphi 1) pozdrav Željko [ krdr @ 12.05.2005. 03:27 ] @
Jeste, nepazljivo sam citao :)
Samo sam pogledao strukturu :) Mislim da cu iskoristiti (ali kako c#) Hvala. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|