Announcement

Collapse
No announcement yet.

DataGrid Eigenschaften / Datenformatierungsausdruck

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataGrid Eigenschaften / Datenformatierungsausdruck

    Hi,
    <br>Eigenschaft DataGrid Eigenschaften / Datenformatierungsausdruck
    <br>was darf man denn da eintragen?
    <br>Alle meine Versuche wurden eins zu eins übersetzt und anstatt in der Spalte Datum mein Datum mit dem Format yy.mm.dd zu sehen sehe ich den, den ich als Formatvorlage angegeben habe (yy.mm.dd) ?!?
    <br>
    <br>Die Hilfe zu dieser Eigenschaft ist absolut nichts sagend.
    Ich hoffe es weiß hier jemand, wie man nun ein formatiertes Datum in einem Grid anzeigen kann (am besten über diese Eigenschaft).
    <br>
    <br>Danke!
    <br>
    <br>mfg
    <br>PS

  • #2
    Hallo,

    das Problem liegt darin, dass die deutsche Version von Microsoft Visual Studio .NET mit der übersetzten Beschriftung eine falsche Fährte liegt. In der US-Version von VS. NET zeigt der Name <b>Format</b> indirekt zur Hilfeseite <i>Predefined Date/Time Formats (Format Function)</i>.

    Wird in diese Eingabefeld zum Beispiel die Formatanweisung <b>f</b> eingetragen, so zeigt das DataGrid das Datum in der langen Textform an

    Comment


    • #3
      Hallo
      <br>Danke für die Info. Habe nun die richtige Hilfeseite gefunden und verschieden Kombinationen getestet, aber wenn ich <b>f</b> eintrage erhalte ich in jeder Zeile in der Spalte Datum ein <b>f</b>. Ich habe auch schon nachgeschaut ob ich meine .Net Version updaten kann, scheint jedoch auf dem aktuellsten Stand zu sein. Unter Delphi kann man das Display format im DataSet Objekt festlegen. Das scheint in .Net nicht möglich zu sein, gibt es vieleicht noch einen Weg das mit .Net zu machen, ohne das Format fest im Select einzutragen?
      <br>
      <br>mfg
      <br>P

      Comment


      • #4
        Hallo,

        &gt;Unter Delphi kann man das Display format im DataSet Objekt festlegen.

        ja - aber das ist aber auch unflexibel. Was passiert, wenn mehrere Benutzer aus mehreren Ländern gleichzeitig die Information abrufen - in diesem Fall sollte jeder "sein" gewohntes Datumsformat erhalten können. Aus diesem Grund sieht .NET diese Konfiguration beim Data Binding vor.

        Man hat mindestens 2 Optionen: <br>
        a) <b>TableStyles</b> des DataGrid (Format-Anweisung wie zum Beispiel f im passenden GridColumnStyles-Eintrag)<br>
        b) <b>Format</b>-Ereignis der Binding-Objekte

        Das folgende Beispiel demonstriert, wie die Datumsanzeige über Format korrigiert werden kann:

        VB.NET-Beispiel:
        <pre>
        Dim aDS As New DataSet()
        Dim aDA As SqlDataAdapter

        Dim WithEvents aB As Binding

        Private Sub aB_Format(ByVal sender As Object, ByVal e As System.Windows.Forms.ConvertEventArgs) Handles aB.Format
        e.Value = CType(e.Value, DateTime).ToString("dd.MM.yyyy")
        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim sCS = "data source=localhost;initial catalog=tempdb;integrated security=SSPI"
        Dim aCon As New SqlConnection(sCS)
        Dim aCmd As New SqlCommand("SELECT * FROM Logbuch", aCon)
        aDA = New SqlDataAdapter(aCmd)
        aDA.Fill(aDS)
        Dim aB As Binding = New Binding("Text", aDS.Tables(0), "Zeitpunkt")
        AddHandler aB.Format, AddressOf aB_Format
        TextBox1.DataBindings.Add(aB)
        End Sub
        </pre>
        C#-Beispiel:
        <pre>
        using System.Data.SqlClient;
        ...
        private void OnParseTextBox(object sender, System.Windows.Forms.ConvertEventArgs e)
        {
        e.Value = ((DateTime)e.Value).ToString("dd.MM.yyyy");
        }

        private void button1_Click_1(object sender, System.EventArgs e)
        {
        string sCS = "data source=localhost;initial catalog=Northwind;integrated security=SSPI";
        SqlConnection aCon = new SqlConnection(sCS);
        SqlCommand aCmd = new SqlCommand("SELECT OrderDate FROM Orders", aCon);
        SqlDataAdapter aAdp = new SqlDataAdapter(aCmd);
        DataSet aDS = new DataSet();
        aAdp.Fill(aDS);
        Binding aB = new Binding("Text", aDS.Tables[0], "OrderDate");
        aB.Format += new ConvertEventHandler(this.OnParseTextBox);
        textBox1.DataBindings.Add(aB);
        }
        </pre&gt

        Comment


        • #5
          Hallo,
          <br>
          <br>vielen Dank für die Info.
          <br>Habe nun den richtigen Format String gefunden:
          <br>{0:d}
          <br>
          <br>Werde mal bei Zeiten in der Hilfe suchen, ob es irgendwo eine Auflistung zu diesen Formatfunktionen gibt.
          <br>
          <br>Schade ist nur, das es anscheinend keine Einheitliche Formatierungsstruktur in .Net gibt.
          <br>
          <br>Danke nochmals!
          <br>
          <br>mfg
          <br>P

          Comment

          Working...
          X