detaily zaznamu   zodpovězená otázka

VB.NET, WinForms

caute,

mam datagridview kde zobrazujem informacie o uzivateloch. Potrebujem urobit jednu vec:

ked klikenm na urcity riadok aby sa mi zobrazil form kde budem mat kompletne dtaily a danom uzivatelovi?

je mi jasne ze potrebujem vytvorit este jeden form aj to ze ho ho potrebujem previazat na proceduru kliknutia, skor mi ide o to aby ma niekto nakopol ako zobrazit konkretny zaznam.

vdaka

cujan

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tuším, že každá buňka datagridview má v sobě schovánou vlastnost Tag, takže například sem si uložit ID daného uživatele nebo něco, co je klíč v tabulce těch detailů. A při zobrazení formuláře poslat dotaz na databázi, popř. vybrat data z datasetu... nebo pokud je Datagridview napojen na DataSet, tak tam se na ty data už dostane, ne?

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

ako vdaka aj za teoreticky popis algoritmu ale ja by som potreboval nakopnut trosku aj prakticky

vdaka

cujan

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V pořádku, mám tu starší projekt, ze kterého to vypada zhruba nějak takto:

 datagrid.Item(číslo sloupce, číslo řádku).Value = "hodnota,kterou chcete zobrazit pro uživatele"
datagrid.Item(sloupce, řádek).Tag = "ID toho záznamu"
' jakmile klikne na tu bunku, kterou chcete, tka zjiste jeji pozici, budete tam mit metodu:
Private Sub DG_Plan_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DG_Plan.MouseDoubleClick
' a zjiste, na jakou bunku kliknul:
Dim ID As Integer =  DG_Plan.Item(DG_Plan.CurrentCell.ColumnIndex, DG_Plan.CurrentCell.RowIndex).Tag ' tech moznosti je cela rada ovsem, tohle je jedna z nich...

' potom jenom otevrete ten formular novy, predate mu promennou a poslete dotaz do databaze pro detaily... napriklad, reseni je spousta.

End Sub

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Uff, vdaka ti moc za pomoc, dufam ze sa z toho dajako vysomarim:-)

inac nemozes mi poslat ten projektik na moj email? [email protected]

ale ak to je daco privatne tak samozrejme aj tak vrela vdaka za pomoc.

Dik

Cujan

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bohužel, toto ti poslat nemůžu :-)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

nic vdaka aj ta, inac nemozes mi poradit nejake zaujimave weby na info VB. Vies ja zacinam takze rad by som daco nastudoval a zbytocne neotravoval malickostami ale nejako sami nedari nic najst. Teda nie v slovencine alebo cestine.

dik

cujan

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vždyť na jednom takovém webu jsi :-) pochybuju, že bys našel něco lepšího v češtině nebo slovenčtině. Já osobně bych ti nejvíc doporučil msdn.microsoft.com, ale to není samozřejmě česky, potom bych doporučil www.codeproject.com, opět v angličtině.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Cau, uz som asi otravny ale predsa sa spytam, z klasickej literatury co by si mi odporucal si pozrieť?

Vdaka

cujan

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já osobně, když jsem musel programovat ve VB.NET, tak jsem sáhnul po http://www.grada.cz/katalog/seznam/mysli... je to dvoudílný a docela dobrý, i když trochu starší mám takovej pocit, ale ze začátku to je docela dobrý. Pak je naprosto úžasná tato kniha http://knihy.cpress.cz/knihy/pocitacova-... sice je to o C#, ale pořád jenom .NET Framework a to je alfa a omega všeho... potom bych to viděl na http://knihy.cpress.cz/knihy/pocitacova-... a to bude asi všechno :-) v těhle knížkácj je velký potenciál.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Místo Tag by identifikace jedinečného

záznamu mohla být i ve skrytém sloupci

datagridview.

Někdy stačí rozdělit form na části

a editovat místo v v dalším formu

v panelu vedle nebo pod datagridview.

Nebo přidat splitcontainer, možností

bude více, jak form rozdělit...

Jen zkusmo, readonly datagriview

a dva textboxy vedle pro editaci:

Imports System.Windows.Forms
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dt As DataTable = New DataTable
        With dt
            .Columns.Add("Jméno")
            .Columns.Add("Příjmení")
            .Rows.Add("Honza", "Dufek")
            .Rows.Add("Pavel", "Dufek")
            .Rows.Add("Jan", "Hlávka")
            .Rows.Add("Milan", "Dufek")
            .Rows.Add("Jan", "Duffon")
            .Rows.Add("Pavel", "Hlávka")
            .Rows.Add("Ondřej", "Linhart")
            .Rows.Add("Mirek", "Linhart")
        End With
        Dim dgv As DataGridView = New DataGridView
        With dgv
            .DataSource = dt
            .Dock = DockStyle.Fill
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect
            .MultiSelect = False
            .AllowUserToAddRows = False
            .ReadOnly = True
        End With
        Dim tb1 As TextBox = New TextBox
        Dim tb2 As TextBox = New TextBox
        tb1.Top = 5
        tb2.Top = tb1.Bottom + 5
        Dim pnl As Panel = New Panel
        With pnl
            .Controls.Add(tb1)
            .Controls.Add(tb2)
            .Width = tb1.Width
        End With
        tb1.DataBindings.Add("Text", dgv.DataSource, "Jméno")
        tb2.DataBindings.Add("Text", dgv.DataSource, "Příjmení")
        Me.Controls.Add(dgv)
        Me.Controls.Add(pnl)
        pnl.Dock = DockStyle.Left
    End Sub
End Class

Přesto se také nabízí záznamy upravovat

přímo v datagridview bez nutnosti dalšího

formu nebo dalších prvků ve formuláři.

Záleží dle potřeby, vkusu... Mnoho zdaru!

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback