开发者

DevExpress DateEdit using MVC

I ha开发者_开发百科ve just started using the <% Html.DevExpress().DateEdit() control and i got it to work fine in my ASP.Net MVC application. The code is as shown below:

aspx page:

<% Html.DevExpress().DateEdit(settings => { settings.Name = "EndDate"; settings.Properties.NullText = "dd/MM/yyyy"; settings.Properties.EditFormat = EditFormat.Custom; settings.Properties.EditFormatString = "dd/MM/yyyy"; settings.Properties.DisplayFormatString = "dd/MM/yyyy"; settings.Date = Model.EndDate; settings.Width = 100;

} ).Render(); %>

Above this code i have a reference to my javascript file (DateChanges.js) in this file i want to be able to do something like:

$(document).ready(function(){
    $("#EndDate").change(function(){
        //do whatever i want
    });

})

I cant do this now cause using firefox i can see that the actual textbox that this datepicker assigns a value to has be named "EndDate_I". So my question is how can i easily do this since i want to be able to catch the change event of this control and play around with it in jQuery??


The DevExpress MVC Extensions offer their own infrastructure for the client-side processing needs (see the http://help.devexpress.com/#AspNet/CustomDocument6908 help topic to getting started).

It is necessary to handle the client-side ASPxClientDateEdit.DateChanged event, and retrieve the newly selected Date via the client-side ASPxClientDateEdit.GetDate() method. Use the retrieved js Date object for your additional needs:

<script type="text/javascript">
    function OnDateChanged(s, e) {
        var newDate = s.GetDate();
        alert(newDate);
    }
</script>

settings.Properties.ClientSideEvents.DateChanged = "OnDateChanged";


There is a rather long Blog post at http://kennytordeur.blogspot.com/2011/05/aspnet-mvc-where-is-clientid_10.html discussing your problem

( I think it is to long to have it pasted here, and the author deserves the credits )


following on from your comment on Mikhails's answer, there will be a property in the global namespace with the name of your control, so it's just like this:

CalculateDayDifference(s.GetDate(), EndDate.GetDate());

All the mvc controls do this, for some you might have to set the EnableClientSideApi property to start using them.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜