Kendo DropDownList事件连接到Ajax.BeginForm提交

时间:2014-02-20 17:43:06

标签: jquery asp.net ajax asp.net-mvc kendo-asp.net-mvc

我在理解如何将事件连接到ajax.begin表单时遇到一些麻烦。

我想要完成的是这个,我有一个下拉列表,其中列出了经销商列表。

基于该经销商,我想加载部分视图。我的模型有一个CurrentReseller字段,包含我需要的所有信息,但我不确定如何根据他们选择的值更改该值。

现在我知道我可以通过常规jQuery来做到这一点,但我对Javascript或JQuery知之甚少知道如何做到这一点。

这是我的cshtml页面的内容

@using (Ajax.BeginForm("RenderPartials", "Admin", new AjaxOptions {
    UpdateTargetId = "SellerWebSettings",
    HttpMethod = "POST",
    InsertionMode = InsertionMode.Replace,
    LoadingElementId = "AjaxLoading",
    LoadingElementDuration = 500
})) {

    Html.Kendo().DropDownListFor(rs => rs.CurrentReseller)
.Name("CurReseller")
.DataTextField("Name")
.DataValueField("Name")
.Events(e => e.Change("OnCurResellerChanged"))//this is event that will ultimately render a new partial, i want this to trigger the "RenderPartials" ajax form.
.DataSource(source => {
    source.Read(read => {
        read.Action("GetResellers", "Admin");
    });
}).OptionLabel("-- Select a Reseller --");

}
<div id="SellerWebSettings"></div>

如何通过Ajax.BeginForm()告诉“change event”进行ajax表单提交?

1 个答案:

答案 0 :(得分:0)

  

.Events(e =&gt; e.Change(“OnCurResellerChanged”))

在这种情况下,只需将表单提交如下所示 -

说我有一个来自下拉列表的模型 -

public class DDLModel
{
    public List<SelectListItem> Items { get; set; }
    public string SelectedValue { get; set; }
}

然后我填充模型并将其发送到View,执行以下操作 -

    public ActionResult Index()
    {
        DDLModel model = new DDLModel();
        model.Items = new List<SelectListItem>();
        model.Items.Add(new SelectListItem() { Text = "1", Value = "1" });
        model.Items.Add(new SelectListItem() { Text = "2", Value = "2" });
        model.Items.Add(new SelectListItem() { Text = "3", Value = "3" });
        return View(model);
    }

我的View包含一个AJAX表单。我们需要为表单提供id,如下所示。

@model MVC.Controllers.DDLModel
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

<script>
    function Call() {
        $("#form1").submit();
    }
</script>

@using (Ajax.BeginForm("Submit", "Ajax", new AjaxOptions { UpdateTargetId = "SellerWebSettings" }, new { id = "form1" }))
{
    @Html.DropDownListFor(m => m.SelectedValue, Model.Items, "DDL", new { @onchange = "Call()" })
}

因此,当您更改Dropdownlist值时,将使用jquery提交表单,并使用所选值命中相应的控制器操作。您可以在kendo下拉列表的更改功能中执行以下操作。

输出 -

enter image description here