I have a combo box like this
AutoPostBack="false" Width="250px" >
<ItemTemplate>
<div>
<asp:CheckBox runat="server" ID="chk1" />
<asp:Label runat="server" ID="Label1" AssociatedControlID="chk1">
<%
# Eval("AssetNumber")%>
</asp:Label>
</div>
</ItemTemplate>
</telerik:RadComboBox>
rcbSimilarParts.Text = "12354,12347";
This text is not displaying
I'm trying to filter two different (Data Picker's) that are in the same column at the grid. I try to reach a command with these two fields. The whole filtering process is going on in the code behind, and so far it is working for the other fields in the grid. But for one I'm getting a strange exception:
{"The argument types 'Edm.DateTime' and 'Edm.String' are incompatible for this operation. Near greater than or equals expression, line 6, column 15."}
In the DB the field is a datetime and it is a 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>
From
<telerik:RadDatePicker ID="FromOrderDatePicker" runat="server" Width="100px" AutoPostBack="true"
OnSelectedDateChanged="FromOrderDatePicker_SelectedDateChanged" OnPreRender="FromOrderDatePicker_PreRender" />
to
<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 as RadDatePicker;
ViewState["FromDatePicker"] = DateTimeToString(picker.SelectedDate.Value);
ExpressionChanged();
}
protected void FromOrderDatePicker_PreRender(object sender, EventArgs e)
{
if (ViewState["FromDatePicker"] != null)
{
RadDatePicker picker = sender as 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 would be just redundant to post the code (for the 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() + "') AND (it.EntryDate <= '" + ViewState["ToDatePicker"].ToString() + "')";
}
feel free to ask if there is any problem
Thanks for help and fast answer !
<telerik:RadButton ID="BtnSubmirOrder" runat="server" ButtonType="StandardButton" AutoPostBack="true" Text="Place order" PostBackUrl="SaveOrder.aspx"> </telerik:RadButton>protected void Page_Load(object sender, EventArgs e) { if (PreviousPage==null || !PreviousPage.IsCrossPagePostBack) Response.Redirect("~/Default.aspx"); var referencingPage = PreviousPage as NewOrder; int id = Int32.Parse(referencingPage.SelectedPublicationId); DateTime neededBy = referencingPage.SelectedOrderDate; LblSummaryIsbn.Text = referencingPage.SelectedIsbn; LblSummaryNbrCopies.Text = referencingPage.NbrOfOrderedCopies; DateTime orderDate = DateTime.Now; LblSummaryOrderDate.Text = orderDate.ToShortDateString(); LblSummaryTitle.Text = referencingPage.SelectedPublicationTitle; int quantity = Int32.Parse(referencingPage.NbrOfOrderedCopies); StockContainer _context = new StockContainer(); Order newOrder = Order.CreateOrder(orderDate, quantity, neededBy, id); _context.Orders.AddObject(newOrder); _context.SaveChanges(); }