1.介绍
DevExpress Asp.Net MVC 控件使用HtmlHelperExtension.DevExpress方法扩展了HtmlHelper类。
DevExpress()方法返回一个扩展工厂对象(ExtensionsFactory),这个工厂可以提供了一组方法输出各种控件,如textbox、listbox、gridview等。
ExtensionsFactory方法可以根据提供的参数(扩展名Settings,其基类是SettingsBase)返回一个Html扩展对象(类型是 扩展名Extension),这个Html扩展对象使用GetHtml()方法或Render()方法输出Html代码。
例如,使用ListBox扩展,调用ExtensionsFacotory.ListBox(ListBoxSettings settings)方法,返回一个ListBoxExtension对象。
public ListBoxExtension ListBox(ListBoxSettings settings)
{
return ExtensionsFactory.CreateExtension<ListBoxExtension, ListBoxSettings>(settings);
}
public ListBoxExtension ListBox(Action<ListBoxSettings> method)
{
return ExtensionsFactory.CreateExtension<ListBoxExtension, ListBoxSettings>(method);
}
2.基本使用
(1)使用lamd方式定义参数
@{
Html.DevExpress().TextBox(settings =>
{
settings.Name = "textBox";
}).GetHtml();
}
(2)使用SettingBase对象
@{
var tbSettings = new TextBoxSettings();
// 扩展名称必须设置.
tbSettings.Name = "textBox";
}
@{
extension method.
Html.DevExpress().TextBox(tbSettings).GetHtml();
}
(3)服务端定义参数
using System.Web.Mvc;
namespace MyProject.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var s = new DevExpress.Web.Mvc.TextBoxSettings();
s.Name = "myTextBox";
ViewBag.MyTextBoxSettings = s;
return View();
}
}
}
@{
// The extension settings are defined by passing the settings object to the ListBox() extension method.
Html.DevExpress().TextBox(ViewBag.MyTextBoxSettings).GetHtml();
}
3.客户端Js访问mvc扩展
扩展名就是客户端的对象id,如定义了一个TextBox name为textbox,js脚本就可以使用textbox这个id访问对象。
<script>
function setDefaultText() {
textbox.SetText("This is the default text");
}
</script>
@Html.DevExpress().TextBox(settings =>
{
settings.Name = "textbox";
}).GetHtml()
<br />
<input type="button" value="Set default text" name="setText" onclick="setDefaultText()" />
4.在参数设置中定义客户端事件
可以使用ClientSideEvents属性,定义客户端的事件。如
<script>
function onMyButtonClick() {
alert("Hello world");
}
</script>
@Html.DevExpress().Button(settings =>
{
settings.Name = "myButton";
settings.UseSubmitBehavior = false;
settings.ClientSideEvents.Click = "onMyButtonClick";
}).GetHtml()
onMyButtonClick函数可以接受两个参数sender 和 event
5.Callbacks回调
要使用Callbacks,需要如下步骤
- 在部分视图(Partial View)中定义扩展控件,不可以包含其它html代码
- 在Controller中定义回调Action,返回Partial View
- 在控件的CallbackRouteValues参数中定义Controller名和Action名称