Avatar billede simsen Mester
18. september 2006 - 10:43 Der er 4 kommentarer og
1 løsning

vis af datagrid udfra valg i anden datagrid

Hej

Jeg mangler en tutorial, der i VB.NET beskriver, hvad jeg skal gøre for at jeg kan få følgende funktion:

Jeg har et datagrid, der viser data fra en tabel i databasen, når jeg klikker på en række (altså med unik id), skal et andet datagrid på siden, vise data fra en anden tabel i datasen, på baggrund af det valgte id nr.

Nogen der kan fortælle mig hvordan og hvorledes, jeg skal gøre eller henvise mig til en tutorial?

Jeg arbejder med VS2005 - VB.NET

mvh
simsen :-)
Avatar billede simsen Mester
18. september 2006 - 10:50 #1
Hov det er ikke et datagrid - men en datalist - altså jeg skal have et eller andet, hvor jeg bruger en kommando knap eller lignende - hvor jeg kan "vælge" ved at trykke, og så bliver data udfra valgte id vist i en ny dataliste
Avatar billede snepnet Nybegynder
18. september 2006 - 17:31 #2
Du kan få et eksempel her - det er godt nok gridviews, men det illustrerer forhåbentlig en mulighed:

<body>
    <form id="form1" runat="server">
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="CollectionSource" DataKeyNames="Id">
            <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                <asp:BoundField DataField="Text" HeaderText="Text" SortExpression="Text" />
            </Columns>
        </asp:GridView>
        <asp:ObjectDataSource ID="CollectionSource" runat="server" SelectMethod="GetItems" TypeName="Res1"></asp:ObjectDataSource>
        <br />
        <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SubCollectionSource">
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                <asp:BoundField DataField="Text" HeaderText="Text" SortExpression="Text" />
            </Columns>
        </asp:GridView>
        <asp:ObjectDataSource ID="SubCollectionSource" runat="server" SelectMethod="GetItems" TypeName="Res2">
            <SelectParameters>
                <asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedValue" Type="Int32" />
            </SelectParameters>
        </asp:ObjectDataSource>   
    </form>
</body>

Et par klasser til at "drive" ovenstående - kunne se sådan her ud:

public class Res1
{
    public static IList GetItems()
    {
        List<Item> items = new List<Item>();
        items.Add(new Item(1, "A"));
        items.Add(new Item(2, "B"));
        items.Add(new Item(3, "C"));
        return items;
    }
}

public class Item
{
    private int m_Id;
    private string m_Text;

    public int Id
    {
        get { return m_Id; }
        set { m_Id = value; }
    }

    public string Text
    {
        get { return m_Text; }
        set { m_Text = value; }
    }

    public Item(int id, string text)
    {
        m_Id = id;
        m_Text = text;
    }
}

public class Res2
{
    static List<SubItem> m_SubItems;

    static Res2()
    {
        m_SubItems = new List<SubItem>();
        m_SubItems.Add(new SubItem(1, "SA"));
        m_SubItems.Add(new SubItem(2, "SB"));
        m_SubItems.Add(new SubItem(3, "SC"));
        m_SubItems.Add(new SubItem(1, "SAA"));
        m_SubItems.Add(new SubItem(2, "SBB"));
        m_SubItems.Add(new SubItem(3, "SCC"));
        m_SubItems.Add(new SubItem(1, "SAAA"));
        m_SubItems.Add(new SubItem(2, "SBBB"));
        m_SubItems.Add(new SubItem(3, "SCCC"));
    }

    public static List<SubItem> GetItems(int id)
    {
        List<SubItem> foundItems = m_SubItems.FindAll(delegate(SubItem item)
                                        {
                                            if (item.Id == id)
                                                return true;
                                            return false;
                                        });
        return foundItems;
    }
}

public class SubItem
{
    private int m_Id;
    private string m_Text;

    public int Id
    {
        get { return m_Id; }
        set { m_Id = value; }
    }

    public string Text
    {
        get { return m_Text; }
        set { m_Text = value; }
    }

    public SubItem(int id, string text)
    {
        m_Id = id;
        m_Text = text;
    }
}

Mvh
Avatar billede simsen Mester
21. september 2006 - 11:17 #3
Tak snepnet

Problemet er uddateret. Selvom din kode er i C# og det var VB.NET jeg ønskede det ;-) så smid alligevel et svar, da jeg helt sikkert får brug for din kode på et tidspunkt :-)

mvh
simsen :-)
Avatar billede snepnet Nybegynder
21. september 2006 - 11:52 #4
Ok - du får et svar få.
Der findes online oversættere på nettet - men jeg har ikke lige styr på hvor du finder en der kan oversætte 2.0 kode.
Mvh
Avatar billede snepnet Nybegynder
21. september 2006 - 11:52 #5
Nå - den med svaret kiksede så lidt i første omgang :o)
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester