c# - The argument types 'Edm.DateTime' and 'Edm.String' are incompatible for this operation -
i'm trying filter 2 different (data picker's) in same column @ grid. try reach command these 2 fields. whole filtering process going on in code behind, , far working other fields in grid. 1 i'm getting strange exception:
{"the argument types 'edm.datetime' , 'edm.string' incompatible operation. near greater or equals expression, line 6, column 15."}
in db field datetime , single column
my code :
<telerik:gridboundcolumn datafield="entrydate" datatype="system.datetime" dataformatstring="{0:dd/mm/yyyy}" filtercontrolalttext="filter entrydate column" headertext="date" sortexpression="entrydate" uniquename="entrydate" filtercontrolwidth="50px"> <filtertemplate> <telerik:raddatepicker id="fromorderdatepicker" runat="server" width="100px" autopostback="true" onselecteddatechanged="fromorderdatepicker_selecteddatechanged" onprerender="fromorderdatepicker_prerender" /> <telerik:raddatepicker id="toorderdatepicker" runat="server" width="100px" autopostback="true" onselecteddatechanged="toorderdatepicker_selecteddatechanged" onprerender="toorderdatepicker_prerender" /> </filtertemplate> </telerik:gridboundcolumn> code behind:
protected void fromorderdatepicker_selecteddatechanged(object sender, telerik.web.ui.calendar.selecteddatechangedeventargs e) { raddatepicker picker = sender raddatepicker; viewstate["fromdatepicker"] = datetimetostring(picker.selecteddate.value); expressionchanged(); } protected void fromorderdatepicker_prerender(object sender, eventargs e) { if (viewstate["fromdatepicker"] != null) { raddatepicker picker = sender raddatepicker; picker.selecteddate = stringtodatetime(viewstate["fromdatepicker"].tostring()); } } private string datetimetostring(datetime dt) { return dt.month + "/" + dt.day + "/" + dt.year; } private datetime stringtodatetime(string s) { string[] dts = s.split('/'); datetime dt = new datetime(int32.parse(dts[2]), int32.parse(dts[0]), int32.parse(dts[1])); return dt; } it redundant post code (for todatepicker)
private void expressionchanged() { //reset timereportgrid.mastertableview.filterexpression = null; timereportgrid.mastertableview.rebind(); if (viewstate["fromdatepicker"] != null && viewstate["todatepicker"] != null && viewstate["fromdatepicker"].tostring() != "" && viewstate["todatepicker"].tostring() != "") { timereportgrid.mastertableview.filterexpression += "(it.entrydate >= '" + viewstate["fromdatepicker"].tostring() + "') , (it.entrydate <= '" + viewstate["todatepicker"].tostring() + "')"; } feel free ask if there problem
thanks , fast answer !
the answer question pretty simple had declared entrydateis datetime that
timereportgrid.mastertableview.filterexpression += "(it.entrydate>= datetime '" + viewstate["fromdatepicker"].tostring() + " 00:00') , (it.entrydate<= datetime '" + viewstate["todatepicker"].tostring() + " 23:59')"; simple take me time
feel free ask if there problems
Comments
Post a Comment