2014-02-17 32 views
1

在我看来,我有一个的DevExpress丝带用丝带,就像这样:如何使用devexpress功能区按钮执行ActionResult?

@Html.DevExpress().Ribbon(settings => 
{ 
settings.ShowFileTab = false; 
settings.Name = "ribbon"; 
var tab = settings.Tabs.Add("Options"); 
var tasksGroup = tab.Groups.Add("Range"); 
tasksGroup.Items.Add(MVCxRibbonItemType.DateEditItem, s => 
{ 
    s.Name = "inicialDate"; 
    s.Text = "Data Inicial"; 
}); 
tasksGroup.Items.Add(MVCxRibbonItemType.DateEditItem, s => 
{ 
    s.Name = "finalDate"; 
    s.Text = " Data Final"; 
}); 
tasksGroup.Items.Add(MVCxRibbonItemType.ButtonItem, b => 
{ 
    b.Text = "Send"; 
    b.ItemStyle.BackColor = System.Drawing.Color.OrangeRed;   
}); 
}).GetHtml() 

我无法弄清楚如何在同时传递日期作为参数一些动作执行职务。 mvc devepress中的一些控件有一个真正的disguting文档。 任何人都可以帮助我吗?

回答

2

根据此link DevExpress支持建议使用客户端事件将数据发布到服务器端。看看下面

@Html.DevExpress().Ribbon(s=> 
{ 
s.Name = "ribbon"; 
...... 
s.ClientSideEvents.CommandExecuted = "function (s,e) { OnCommandExecuted(s,e); }"; 
..... 
tasksGroup.Items.Add(MVCxRibbonItemType.ButtonItem, b => 
{ 
    b.Text = "Send"; 
    b.Name = "SendData"; 
    ...... 
}); 
}).GetHtml() 

<script> 
    function OnCommandExecuted(s,e) { 
    if (e.item.name == "SendData"){ 
     $.post("/controller/action?inicialDate=" + s.GetItemValueByName("inicialDate") + "&finalDate" + s.GetItemValueByName("finalDate"), function (data) { 
     }, function (err) { 
     }); 
    } 
    } 
</script> 
+0

我定义了JS的功能,但在控制台中名称的例子,我得到这个错误:>未捕获的ReferenceError:OnCommandExecuted不defined.Do你知道它可能是什么? – gog

+1

此错误表示DevExpress在页面上定义之前尝试使用函数。尝试将代码替换为s.ClientSideEvents.CommandExecuted =“function(s,e){OnCommandExecuted(s,e);}”; – Michael

+0

谢谢你,完美的作品。但为什么在声明之前devex尝试执行该函数?它对我来说没有意义。它应该是一个错误imo。 – gog