Avatar billede Slettet bruger
28. april 2004 - 21:23 Der er 6 kommentarer og
1 løsning

Vise og sortere efter datagrid, der er bundet til 3 "ja/nej" i db

Hej
Jeg har en access db, hvor i der bl.a. er 3 forskellige "ja/nej" eller afkrydsnings kolonner.
Jeg har bundet data fra min db til et datagrid og viser heri nogle af de søjler, der indgår i min db. Det er muligt at sortere ved at trykke på headertekst i den table hvor data vises.

Mit problem er nu at disse 3 før omtalte afkrydsningsfelter Lad os kalde dem A, B og C. Der kan kun være kryds i et af felterne og derfor vil jeg gerne vise i tabellen i en kolonne enten A, B eller C og jeg vil gerne kunne sortere den kollonne.
Kan man det?
Det skal måske lige tilføjes at jeg er lidt ny i både VB.net og ASP.net

På forhånd tak.
Avatar billede jakobg Nybegynder
28. april 2004 - 23:31 #1
Prøv at vise noget kode fra aspx-siden...
Avatar billede Slettet bruger
28. april 2004 - 23:35 #2
Kommer her (uddrag)

<%@Import Namespace="System.Data.OleDB"%>

<Script Runat="server">

'Henter uafsluttede afvigelsesrapporter
Sub Page_Load
    If Not IsPostBack Then
        BindDataGrid( "Id" )
    End If
End Sub

Sub BindDataGrid( strSortField As String )
    Dim DbConn As OleDbConnection
    Dim SqlCmd As OleDbCommand
   
    DbConn = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\inetpub\wwwroot\database\afvigelsesrapporter.mdb")
    SqlCmd = New OleDbCommand( "Select * FROM afvigelser WHERE afsluttet = true ORDER BY " & strSortField, DbConn )
    DbConn.Open()
    ' Bind to repeater
    rptSamling.DataSource = SqlCmd.ExecuteReader()
    rptSamling.DataBind()
   
    DbConn.Close()
End Sub

Sub SamlingTitle_SortCommand( s As Object, e As DataGridSortCommandEventArgs )
    BindDataGrid( e.SortExpression )
End Sub
   
</script>

....
....
....

<asp:DataGrid
    Id="rptSamling"
    AllowSorting="True"
    OnSortCommand="SamlingTitle_SortCommand"
    AutoGenerateColumns="False"
    Cellpadding="1"
    Bordercolor="#D4D4D4"
    AlternatingItemStyle-Backcolor="#CCFFFF"
    Width="90%"
    Runat="Server">
   
<Columns>
<asp:BoundColumn
    DataField="Id"
    HeaderText="Nummer"
    SortExpression="Id" />
<asp:BoundColumn
    DataField="Dato"
    HeaderText="Dato"
    SortExpression="Dato" />
<asp:BoundColumn
    DataField="Ansvarlig_for_opfølgning"
    HeaderText="Ansvarlig"
    SortExpression="Ansvarlig_for_opfølgning" />
<asp:BoundColumn
    DataField="Hvad"
    HeaderText="Hvad"
    SortExpression="Hvad" />
<asp:HyperLinkColumn
    HeaderText="Vis"
    DataNavigateUrlField="Id"
    DataNavigateUrlFormatString="Afvigelsesrapport_vis.aspx?id={0}"
    Text="Hent" />
   
</columns>

</asp:DataGrid>
Avatar billede jakobg Nybegynder
28. april 2004 - 23:45 #3
Og du vil gerne have EN kolonne med et kryds, hvis A, B eller C er sand/true?
Avatar billede jakobg Nybegynder
28. april 2004 - 23:54 #4
Prøv at skrive din SELECT UDEN stjernen, så jeg kan se dine kolonnenavne i tabellen. Og angiv hvilke tre kolonner der er A, B og C....

Så klarer vi den i morgen tidlig. :)
Avatar billede Slettet bruger
29. april 2004 - 01:44 #5
Hej
a = kvalitet
b = miljø
c = arbejdsmiljø

i db har de hver sin kolonne hvor der for hver post kun er en af den der er "true". Når data vises i grid, skal der i en kolonne vises den af a,b eller c, der er "true", ved at der står hhv. kvalitet, miljø eller arbejdsmiljø.

Der ud over har jeg en lang række andre kolonner i db, som bare skal vises som de er.
Avatar billede jakobg Nybegynder
29. april 2004 - 09:36 #6
Prøv at ændre din SELECT til følgende:

SELECT ID, Dato, kvalitet OR miljø OR arbejdsmiljø AS blnResult
FROM afvigelser
ORDER BY kvalitet or miljø or arbejdsmiljø;

Jeg har testet det i Access, og selvom SQL'en ikke er helt lovlig, ser det ud til at virke (i Access i det mindste:).

I dit DataGrid laver du en Templatecolumn:

<asp:TemplateColumn HeaderText="Kolonne navn" SortExpression="blnResult">
<ItemTemplate>
  <%# iif(Container.DataItem("blnResult") = true, "x", "") %>
</ItemTemplate>
</asp:TemplateColumn>

Et par gode råd:
Brug ALDRIG (og jeg mener ALDRIG:) de danske æ, ø og å, når du navngiver noget som helst i programmering, inkl. kolonnenavne.

Med tre bit-kolonner, som udelukker hinanden, skal du måske overveje en integer i stedet, som så er 1, 2 eller 3 alt efter om det er kvalitet, miljø eller arbejdsmiljø.
Avatar billede Slettet bruger
29. april 2004 - 23:56 #7
Hej Igen.
Det var vist ikke helt det jeg mente - eller også har jeg ikke lavet det rigtigt :-)

Det resultat jeg ønser at vise på min side er en tabel, der viser ID, Dato og type som overskrift på kolonnerne. I tabellen vises Id-nummeret, datoen og typen, der kan være enten kvalitet, miljø eller arbejdsmiljø. Der ud over skal det være muligt at sortere ved at trykke på kolonne-overskriften så der kan sorteres både efter ID, eller dato, eller type.
Nå ja, og så for at gøre det hele lidt mere indviklet, så ønsker jeg en kolonne mere, hvor der lige som med type skal så afdeilng og det kan så være økonomi, drift, personale eller anden. Hvor økonomi, drift og personale vælges ved true/false mens anden skrives ind i som tekst.
Kan man alt det - kan jeg?
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