Avatar billede Slettet bruger
03. juni 2004 - 21:46 Der er 10 kommentarer og
2 løsninger

True/False værdi i Datagrid skal laves om til Ja/Nej

Fra min database får jeg værdien True/False ud i en column. Hvordan ændrer jeg den værdi til Ja/Nej?

Denne funktion har jeg lavet i min codebehind fil:

  Public Function PrintYesNo(ByVal Answer As String) As String
    Select Case Answer.ToUpper
      Case "TRUE"
        Return "Ja"
      Case Else
        Return "Nej"
    End Select
  End Function

Hvorfor kan jeg så ikke følgende:
...
<asp:TemplateColumn HeaderText="Svar">
<ItemTemplate>
  <%# PrintYesNo(Container.DataItem("Onwire")) %>
</ItemTemplate>
</asp:TemplateColumn>
...

Eller rettere... Hvordan får jeg det til at virke? :-)
Avatar billede Slettet bruger
03. juni 2004 - 21:47 #1
Der skulle stå:

<%# PrintYesNo(Container.DataItem("Svar")) %>
Avatar billede jepsen999 Nybegynder
03. juni 2004 - 22:15 #2
Prøv:
<%# Convert(DataBinder.Eval(Container,"DataItem.Onwire")) %>
Avatar billede jepsen999 Nybegynder
03. juni 2004 - 22:15 #3
hov, det var :
<%# PrintYesNo(DataBinder.Eval(Container,"DataItem.Onwire")) %>
Avatar billede Slettet bruger
03. juni 2004 - 22:21 #4
Jeg får en fejl:

'System.Data.DataRowView' indeholder ikke en egenskab med navnet Onwire.

Skal Onwire deklareres et sted?
Avatar billede Slettet bruger
03. juni 2004 - 22:30 #5
Hidtil har jeg kun arbejdet med boundcolumns så jeg kan godt se at der mangler noget i kodedelen hvor jeg lægger mine data over i datagriddet. Jeg kan bare ikke lige få overblik over hvad jeg mangler

Se selv:
    ...
      databaseforbindelse etc
    ...
    dt = New DataTable

    sqlAdapter.Fill(dt)

    dv = New DataView(dt)

    Me.DGCalls.DataSource = dv
    Me.DGCalls.DataBind()

    sqlConn.Close()
Avatar billede jepsen999 Nybegynder
03. juni 2004 - 22:38 #6
Jeg fik ikke rettet din rettelse, så det skulle være "Svar" istedet for "Onwire".
- Hvis du altså har en attribut på din tabel der hedder "Svar".
Avatar billede Slettet bruger
03. juni 2004 - 22:57 #7
Kan du give mig et eksempel på det?
Avatar billede Slettet bruger
03. juni 2004 - 23:04 #8
Jeg fandt ud af det...

Det der var "Svar" skulle hedde det samme som mit element i databasen.
Avatar billede Slettet bruger
03. juni 2004 - 23:05 #9
Smid lige et svar jepsen for tiden du brugte på det :-)
Avatar billede jepsen999 Nybegynder
03. juni 2004 - 23:06 #10
Det er noget tid siden jeg sidst har arbejdet med dataadapter, så det er måske ikke den helt rigtige måde (men det virker)

Codebehind:
private void Page_Load(object sender, System.EventArgs e)
{
    this.oleDbConnection1.ConnectionString = ...;

    DataTable dt = new DataTable("T");
    System.Data.OleDb.OleDbCommand com = oleDbConnection1.CreateCommand();
    com.CommandText = "Tabel1";
    com.CommandType = CommandType.TableDirect;

    System.Data.OleDb.OleDbDataAdapter adap = new System.Data.OleDb.OleDbDataAdapter(com);
    adap.Fill(dt);
    this.DataGrid1.DataSource=dt;
    this.DataGrid1.DataBind();
}
aspx-filen:
...
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateColumn>
            <ItemTemplate>
                <%# Convert(DataBinder.Eval(Container,"DataItem.Svar")) %>
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid>
...

Bygger på en database med en tabel der hedder "Tabel1" og har en attribut der hedder "Svar".
Avatar billede jepsen999 Nybegynder
03. juni 2004 - 23:08 #11
ok, kom ellers lige for sent med det sidste... ;)
Avatar billede Slettet bruger
03. juni 2004 - 23:11 #12
Tak for det...
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