2016-08-26 3 views
0

Wie erhalte ich die Formatzeit in meiner Gridview-Spalte, um sie auf meinem Repository zu setzen? das Datum in der Datenbank unter Verwendung von date time war, die eine Ausgabe von 8/1/2016 12:00:00 AM zurückkehren und i gesetzt in einem Gridcolumn mit dieser MethodeWie bekomme ich Filterspalte mit unterschiedlichem Format?

private void arrange() 
    { 

     gridView1.Columns["date"].VisibleIndex = 1; 
     gridView1.Columns["date"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; 
     gridView1.Columns["date"].DisplayFormat.FormatString = "dd MMM yyyy"; 
     gridView1.Columns["date"].format.FormatString = "dd MMM yyyy"; 

     gridView1.Columns["date"].Width = 150; 
    } 

die Anzeige auf dem Gridcolumn aktuell ist

enter image description here

das Problem Wenn ich das Repository-Element in der Filterzeile verwende, erhält es immer noch das Datumsformat aus der Datenbank 8/1/2016 12:00:00 AM. das Bild war wie diese

enter image description here

der Code Artikel in Repository Combobox war hinzufügen

RepositoryItemComboBox repositoryItemComboBox2 = new RepositoryItemComboBox(); 

    private void gridView1_CustomRowCellEdit(object sender, CustomRowCellEditEventArgs e) 
    { 
     GridView view = sender as GridView; 
     for (int i = 0; i < gridView1.RowCount; i++) 
     { 
      if (gridView1.GetDataRow(i) == null) 
      { 
       break; 
      } 
     string txt = gridView1.GetDataRow(i)["date"].ToString(); 
     if (!repositoryItemComboBox2.Items.Contains(txt)) 
      {      
       repositoryItemComboBox2.Items.Add(txt); 
      } 
     } 

     if (e.Column.FieldName == "date" && view.IsFilterRow(e.RowHandle)) 
      { e.RepositoryItem = repositoryItemComboBox2; 

      repositoryItemComboBox2.Sorted = true; 

      } 
    } 

iam Denken, wie dies zu lösen ist:

  1. , wie ich wirklich Umwandlung die Spalte des Datums, nicht durch Anzeigetext
  2. Formatierung der Spalte des Datums
  3. das Repository Formating itemcombobox
  4. das ursprüngliche Format, sondern auf Repository itembox den Anzeigetext als gleiche ändern, wie ich auf Spalte Datum tat
  5. Ihr Vorschlag

nb: iam mit DevExpress

Antwort

0

Ich teile meine Probe über DropBox mit dir in der letzten Frage. Hier mein Code.

private void Form1_Load(object sender, EventArgs e) 
    { 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("Date",typeof(DateTime)); 

     List<DateTime> str = new List<DateTime>(); 

     for (int i = 1; i <= 30; i++) 
     { 
      DataRow row = dt.NewRow(); 
      if (i < 20) 
       dt.Rows.Add(DateTime.Now.Date.ToShortDateString()); 
      else 
       dt.Rows.Add(DateTime.Now.Date.AddDays(1).ToShortDateString()); 
     } 

     gcDate.DisplayFormat.FormatString = "dd/MM/yyyy"; 
     gcDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; 

     repositoryItemComboBox1.DisplayFormat.FormatString = "dd/MM/yyyy"; 
     repositoryItemComboBox1.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime; 

     repositoryItemComboBox1.EditFormat.FormatString = "dd/MM/yyyy"; 
     repositoryItemComboBox1.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime; 

     gridControl1.DataSource = dt; 

     foreach (DataRow item in dt.Rows) 
     { 
      repositoryItemComboBox1.Items.Add(Convert.ToDateTime(item["Date"]).ToShortDateString()); 
     } 
    } 

private void gridView1_CustomRowCellEdit(object sender, DevExpress.XtraGrid.Views.Grid.CustomRowCellEditEventArgs e) 
    { 
     GridView view = sender as GridView; 

     if (e.Column.FieldName == "Date" && view.IsFilterRow(e.RowHandle)) 
     { 
      e.RepositoryItem = repositoryItemComboBox1; 
     } 
    } 

enter image description hereenter image description here

+0

Wie kann ich 'dt.Rows.Add (DateTime.Now.Date.ToShortDateString());' wenn iam Abfrage? Mein Code war http://pastebin.com/UCFC8k4J –

Verwandte Themen