Aug 23, 2011, 8:18 AM
Grid with datecolumn
Hi, I have grid with datail form.
On grid I have datecolumn, after I select some rows datecolumn look as changed even if I don't change date.
I try various settings like usenull, but nothing helps me.
How to set it correctly?
Markup:
On grid I have datecolumn, after I select some rows datecolumn look as changed even if I don't change date.
I try various settings like usenull, but nothing helps me.
How to set it correctly?
Markup:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridWithDate.aspx.cs" Inherits="Intranet_v4_Web.Tests.GridWithDate"
%><!DOCTYPE html>
<html>
<head runat="server">
<title>Grid with date</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<ext:ResourcePlaceHolder runat="server" Mode="ScriptFiles" />
<ext:ResourcePlaceHolder runat="server" Mode="Style" />
<script type="text/javascript">
function GridSelectionChanged(form, record) {
// update changes on current record
if (form.record != null && form.getForm().isDirty()) form.getForm().updateRecord(form.record);
form.getForm().loadRecord(record);
form.record = record;
}
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" locale="cs-CZ" />
<ext:Panel
ID="Panel1"
runat="server"
Title="Grid with dates"
Width="600"
Frame="true"
Layout="Form" >
<Items>
<ext:gridpanel runat="server" title="TestGrid1" icon="Group" id="TestGrid1" autoheight="true"
TrackMouseOver="true" >
<SelectionModel>
<ext:RowSelectionModel runat="server">
<Listeners>
<RowSelect Handler="GridSelectionChanged(#{detail}, record);" />
</Listeners>
</ext:RowSelectionModel>
</SelectionModel>
<columnmodel>
<columns>
<ext:rownumberercolumn />
<ext:column dataindex="UserName" header="Jméno" />
<ext:datecolumn dataindex="SelectedDate" header="Datum" />
</columns>
</columnmodel>
<store>
<ext:groupstore runat="server">
<reader>
<ext:jsonreader>
<fields>
<ext:recordfield name="UserName" />
<ext:recordfield name="SelectedDate" type="Date" AllowBlank="true" usenull="false" />
</fields>
</ext:jsonreader>
</reader>
</ext:groupstore>
</store>
</ext:gridpanel>
<ext:FormPanel id="detail" runat="server" layout="FormLayout" Icon="User" title="Detail">
<items>
<ext:textfield id="UserName" dataindex="UserName"
fieldlabel="UserName" runat="server" />
<ext:datefield id="SelectedDate" dataindex="SelectedDate"
fieldlabel="SelectedDate" runat="server" allowblank="true" />
</items>
</ext:FormPanel>
</Items>
</ext:Panel>
</form>
</body>
</html>
CodeBehind:namespace Intranet_v4_Web.Tests
{
public partial class GridWithDate : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Ext.Net.X.IsAjaxRequest) return;
var data = new List<VM> {
new VM { UserName = "User1", SelectedDate = DateTime.Now } ,
new VM { UserName = "User2", SelectedDate = null } ,
new VM { UserName = "User3", SelectedDate = null } ,
new VM { UserName = "User4", SelectedDate = DateTime.Now } ,
new VM { UserName = "User5", SelectedDate = null }
};
TestGrid1.Store.Primary.DataSource = data;
TestGrid1.Store.Primary.DataBind();
}
}
public class VM {
public string UserName { get; set; }
public DateTime? SelectedDate { get; set; }
}
}