使用MVC的DevExpress DateEdit

时间:2011-10-13 17:09:38

标签: asp.net-mvc devexpress

我刚刚开始使用 <%Html.DevExpress()。DateEdit() 控制,我让它在我的ASP.Net MVC应用程序中正常工作。代码如下所示:

aspx页面:

<% 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(); %>

在此代码上方,我在此文件中引用了我的javascript文件(DateChanges.js),我希望能够执行以下操作:

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

})

我现在无法做到这一点因为使用firefox我可以看到这个datepicker分配值的实际文本框被命名为“EndDate_I”。所以我的问题是我怎样才能轻松实现这一点,因为我希望能够捕获此控件的更改事件并在jQuery中使用它?

3 个答案:

答案 0 :(得分:7)

DevExpress MVC Extensions为客户端处理需求提供了自己的基础架构(请参阅http://help.devexpress.com/#AspNet/CustomDocument6908帮助主题以开始使用)。

必须处理客户端ASPxClientDateEdit.DateChanged事件,并通过客户端ASPxClientDateEdit.GetDate()方法检索新选择的Date。使用检索到的js Date对象满足您的其他需求:

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

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

答案 1 :(得分:0)

http://kennytordeur.blogspot.com/2011/05/aspnet-mvc-where-is-clientid_10.html讨论您的问题时,有一篇相当长的博客帖子

(我认为将它贴在这里很长,作者应该得到学分)

答案 2 :(得分:0)

继续你对Mikhails的回答的评论后,全局命名空间中将有一个属性,其中包含你的控件的名称,所以就像这样:

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

所有mvc控件都执行此操作,对于某些人,您可能必须将EnableClientSideApi属性设置为开始使用它们。