Morning,
I think this question is not directly Telerik related but hopefully someone can help.
I have a datepicker and gridview databound. When I select a row on the gridview, the datepicker updates as I would expect but if I select a row with a blank date (DBNull I believe?) then it still retains the avlue from the previously picked date but still treats it as a null value.
I have looked through all the options I can think of in Formatting and Advanced Binding but nothing seems to work. I have also looked at ways of refreshing the databinding on row change but got no where (plus I don't think that's really the correct way of doing things).
If anyone could help or point me in the right direction i'd really appreciate it!
Kind regards,
Guy
I think this question is not directly Telerik related but hopefully someone can help.
I have a datepicker and gridview databound. When I select a row on the gridview, the datepicker updates as I would expect but if I select a row with a blank date (DBNull I believe?) then it still retains the avlue from the previously picked date but still treats it as a null value.
I have looked through all the options I can think of in Formatting and Advanced Binding but nothing seems to work. I have also looked at ways of refreshing the databinding on row change but got no where (plus I don't think that's really the correct way of doing things).
If anyone could help or point me in the right direction i'd really appreciate it!
Kind regards,
Guy
7 Answers, 1 is accepted
0
Richard Slade
Top achievements
Rank 2
answered on 04 Nov 2010, 12:51 PM
Hello Guy,
You have a gridview, and a separate datetime picker. Is that correct? And as you select different rows, you grab the date from one of the cells in the selected row and make that the date in the datetimepicker. Is that correct?
If this is the case, you can check to see if the current cell is null, and if so, also set the datetimepicker value to null. You can set a null default date in the date time picker also.
Let me know if that helps, or indeed doesn't.
Best regards,
Richard
You have a gridview, and a separate datetime picker. Is that correct? And as you select different rows, you grab the date from one of the cells in the selected row and make that the date in the datetimepicker. Is that correct?
If this is the case, you can check to see if the current cell is null, and if so, also set the datetimepicker value to null. You can set a null default date in the date time picker also.
Let me know if that helps, or indeed doesn't.
Best regards,
Richard
0
Guy
Top achievements
Rank 1
answered on 04 Nov 2010, 01:05 PM
Hi Richard,
Both the gridview and datepicker are bound to the same bindingsource. The datepicker exists with a few other bound controls which the user can then save.
If the user selects a row with a blank date in it, the displayed value of the datepicker is the same as the last row selection which is confusing the users as they think thhe date will save but the value is still being stored as null.
I obviously need a value to blank out that value if it's null. I have tried Databinding both the Value and Text of the datepicker and have set a blank space as the Null value for both. I have also set the Nulldate property of the control to a blank space too but no luck.
Would the best course of action be to check on the rowchange to see if the currentrow has a nulldate and then set the text to "";?
Thanks,
Guy
Both the gridview and datepicker are bound to the same bindingsource. The datepicker exists with a few other bound controls which the user can then save.
If the user selects a row with a blank date in it, the displayed value of the datepicker is the same as the last row selection which is confusing the users as they think thhe date will save but the value is still being stored as null.
I obviously need a value to blank out that value if it's null. I have tried Databinding both the Value and Text of the datepicker and have set a blank space as the Null value for both. I have also set the Nulldate property of the control to a blank space too but no luck.
Would the best course of action be to check on the rowchange to see if the currentrow has a nulldate and then set the text to "";?
Thanks,
Guy
0
Richard Slade
Top achievements
Rank 2
answered on 04 Nov 2010, 01:23 PM
Hi Guy,
Apologies if I'm not getting this straight away, but the RadDateTimePicker does not have a datasource property. How are you setting the the value of the radDateTimePicker?
thanks
Richard
Apologies if I'm not getting this straight away, but the RadDateTimePicker does not have a datasource property. How are you setting the the value of the radDateTimePicker?
thanks
Richard
0
Guy
Top achievements
Rank 1
answered on 04 Nov 2010, 01:26 PM
Hi Richard,
I'm setting it from within the (DataBindings) property at the top of the Properties window. Then within Formatting and Advanced Binding I am setting the value to the bindingsource.
I hope this helps.
Guy
I'm setting it from within the (DataBindings) property at the top of the Properties window. Then within Formatting and Advanced Binding I am setting the value to the bindingsource.
I hope this helps.
Guy
0
Accepted
Richard Slade
Top achievements
Rank 2
answered on 04 Nov 2010, 01:49 PM
Hi Guy,
Ah, ok, I see what you mean, though personally, i think this exampel would be easier. With this it shows the dates in the grid, and then has a null date and null text in the RadDateTimePicker.
Let me know if that helps
Richard
Ah, ok, I see what you mean, though personally, i think this exampel would be easier. With this it shows the dates in the grid, and then has a null date and null text in the RadDateTimePicker.
Let me know if that helps
Richard
Imports System Imports System.ComponentModel Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Dim somethings As New Somethings() Me.RadGridView1.BeginUpdate() Me.RadGridView1.DataSource = New BindingList(Of Something)(somethings.GetSomethings()) Me.RadGridView1.MasterTemplate.BestFitColumns() Me.RadGridView1.EndUpdate() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub RadGridView1_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadGridView1.SelectionChanged If Me.RadGridView1.CurrentRow.Cells("TheDate") IsNot Nothing Then Me.RadDateTimePicker1.Value = Convert.ToDateTime(Me.RadGridView1.CurrentRow.Cells("TheDate").Value) End If End SubEnd Class Public Class Somethings Public Function GetSomethings() As System.Collections.Generic.List(Of Something) Dim somethingList As New System.Collections.Generic.List(Of Something) somethingList.Add(New Something("", "Blank Name Description", New DateTime(1999, 1, 3))) somethingList.Add(New Something("Name", "none", New DateTime(1999, 1, 2))) somethingList.Add(New Something("Name1", "Description1", New DateTime(1999, 1, 1))) somethingList.Add(New Something("Name2", "Description2", New DateTime(1999, 1, 4))) somethingList.Add(New Something("Name3", "Description3", New DateTime(1999, 1, 5))) somethingList.Add(New Something("Name4", "Description4", Nothing)) Return somethingList End FunctionEnd Class Public Class Something Private m_Name As String Private m_Description As String Private m_Date As DateTime Public Sub New() End Sub Public Sub New(ByVal name As String, ByVal description As String, ByVal theDate As DateTime) m_Name = name m_Description = description m_Date = theDate End Sub Public Property Name() As String Get Return m_Name End Get Set(ByVal value As String) m_Name = value End Set End Property Public Property Description() As String Get Return m_Description End Get Set(ByVal value As String) m_Description = value End Set End Property Public Property TheDate() As DateTime Get Return m_Date End Get Set(ByVal value As DateTime) m_Date = value End Set End Property End Class0
Guy
Top achievements
Rank 1
answered on 04 Nov 2010, 04:25 PM
Hi Richard,
Taking some ideas from your post I have come up with the following solution
Thanks once again for all your help!
Best regards,
Guy
Taking some ideas from your post I have come up with the following solution
private void radGridView1_SelectionChanged(object sender, EventArgs e) { if (this.radGridView1.CurrentRow is GridViewGroupRowInfo || this.radGridView1.CurrentRow is GridViewNewRowInfo) { return; } if (this.radGridView1.CurrentRow is GridViewFilteringRowInfo || this.radGridView1.CurrentRow is GridViewFilteringRowInfo) { return; } if (this.radGridView1.CurrentRow.Cells["DateCalled"].Value.ToString() != "") { this.LastDateCalledPicker.Value = Convert.ToDateTime(this.radGridView1.CurrentRow.Cells["DateCalled"].Value); return; } this.LastDateCalledPicker.DateTimePickerElement.SetToNullValue(); }Thanks once again for all your help!
Best regards,
Guy
0
Richard Slade
Top achievements
Rank 2
answered on 04 Nov 2010, 04:27 PM
Great. Glad you have it working now, Guy.
All the best
Richard
All the best
Richard