Avatar billede martinm Nybegynder
26. oktober 2004 - 13:55 Der er 14 kommentarer

Datagrid og dropdownlist med sortering

Hej

Jeg har denne problemstilling:

Jeg har et Datagrid, hvorpå jeg gerne vil have tilføjet en dropdownlist i nogle af 'kolonneverskrifterne'.

Derefter skal brugeren kunne vælge en værdi i en af disse dropdownlister, hvorefter det underliggende datagrundlag skal sorteres derefter.

Nogen der kan hjælpe?
Avatar billede snepnet Nybegynder
26. oktober 2004 - 13:58 #1
jada.... hvor langt er du, og hvilke dele af det er du i tvivl om ?
mvh
Avatar billede martinm Nybegynder
26. oktober 2004 - 14:02 #2
Jeg har fyldt datagridet ud med data fra databasen.
Alt det andet grafiske er på plads, og at gribe eventen fra en selektering i dropdownlisten til sortering er også på plads, men det et sætte en combokox ind i kolonnetoppen kan jeg ikke komme i gang med.
Avatar billede snepnet Nybegynder
26. oktober 2004 - 14:22 #3
Så skal du lige få et lille eksempel her :o)

// i din template
<asp:DataGrid id="grid" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateColumn HeaderText="Header">
            <HeaderTemplate>
                <asp:DropDownList id="dd1" runat="server" OnSelectedIndexChanged="dd1_SelectedIndexChanged" AutoPostBack="True">
                    <asp:ListItem Value="Valg1" Selected="True">Valg1</asp:ListItem>
                    <asp:ListItem Value="Valg2">Valg2</asp:ListItem>
                </asp:DropDownList>
            </HeaderTemplate>
            <ItemTemplate>
                <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FldString") %>'>
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid></P>

// og så i c# koden
protected void dd1_SelectedIndexChanged(object sender, EventArgs e)
{
  // her skal du så lave din sortering og den slags...
}

jeg har ikke så meget tid lige nu, så jeg håber det var nok til at du lige kan komme lidt videre.... jeg har lidt mere tid til at svare senere i aften.

mvh
Avatar billede martinm Nybegynder
27. oktober 2004 - 18:48 #4
Jeps... Det virker ret godt. Points til dig!
Avatar billede snepnet Nybegynder
27. oktober 2004 - 19:42 #5
jamen det var jo alletiders - et svar skal du få :o)
mvh
Avatar billede martinm Nybegynder
28. oktober 2004 - 10:44 #6
Lige en ekstra ting - jeg udfylder min dropdownlist dynamisk vha. databasekald og returnerer fra min codebehind et dataset til min asp.net side ".....<%# fillDropDown() %>....", men istedet for tekstbeskrivelser fremkommer der System.Data.Datarowview i listen. Mangler jeg at caste noget eller angive noget explicit?
Avatar billede snepnet Nybegynder
28. oktober 2004 - 10:54 #7
må jeg se din fillDropDown-metode ?
mvh
Avatar billede martinm Nybegynder
28. oktober 2004 - 10:59 #8
Ja dad. her kommer den:

  Function FillDropDown() As DataSet
        Dim ddlDataSet As DataSet
        If Not IsPostBack Then
            Try
                mySqlConnection = New SqlConnection(Application("objc"))
                mySqlCommand = New SqlCommand("SELECT * FROM X", mySqlConnection)
                Dim myDataAdapter As SqlDataAdapter = New SqlDataAdapter(mySqlCommand)
                ddlDataSet = New DataSet
                myDataAdapter.Fill(ddlDataSet, "Received")
            Catch e As Exception
                System.Web.HttpContext.Current.Response.Write("Exception in FillDropDown : " & e.ToString)
                System.Web.HttpContext.Current.Response.End()
            End Try
        End If
        Return ddlDataSet
    End Function
Avatar billede snepnet Nybegynder
28. oktober 2004 - 11:05 #9
den æder det sikkert hvis du sørger for at sætte disse et par properties på den :

DataTextField = "<den kolonne fra dit datagrundlag du vil have vist som tekst>";
DataValueField = "<den kolonne fra dit datagrundlag du vil have sat som value>";

Det nemmeste ville være at sætte det i templaten.

mvh
Avatar billede martinm Nybegynder
28. oktober 2004 - 11:24 #10
Jeps.. Det hjalp meget. Jeg havde prøvet det, men det virkede ikke, da jeg angav kolonner fra en forkert tabel. Dumt. 1000 tak!
Avatar billede snepnet Nybegynder
28. oktober 2004 - 11:44 #11
det var så lidt :o)
mvh
Avatar billede snepnet Nybegynder
06. november 2004 - 00:02 #12
hej martin - kan vi lukke her ?
mvh
Avatar billede snepnet Nybegynder
08. september 2005 - 23:39 #13
et svar i tilfælde af at du kunne bruge noget.
mvh
Avatar billede snepnet Nybegynder
01. juli 2007 - 08:25 #14
Kan vi lukke her Martin?
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