я работал на asp.net MVC, не могу запустить событие изменения в dropdownlistbox - PullRequest
0 голосов
/ 30 октября 2010

Я создал контроллер с именем AdmissionControlller. Я добавил две функции ActionResult: Create и Post Event

// POST: /Admission/Create
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
    try
    {
        // TODO: Add insert logic here
        return RedirectToAction("Index",collection);
    }
    catch
    {
        return View();
    }
}

 //Return the List of Subject For the Class Selected 
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Details(string className)
{
    var subject = SubjectsModel.SelectSubjectsByClass(className);
    return PartialView("EntranceMarks", subject);
}

теперь на странице просмотра

Создать страницу

<h2>
    Create</h2>
<% using (Html.BeginForm())
{%>
<%= Html.ValidationSummary(true) %>
<fieldset>
    <legend>Fields</legend>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.Id) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.Id) %>
        <%= Html.ValidationMessageFor(model => model.Id) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.PlNo) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.PlNo) %>
        <%= Html.ValidationMessageFor(model => model.PlNo) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.AdmissionNo) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.AdmissionNo) %>
        <%= Html.ValidationMessageFor(model => model.AdmissionNo) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.AdmissionDate) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.AdmissionDate) %>
        <%= Html.ValidationMessageFor(model => model.AdmissionDate) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.FirstName) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.FirstName) %>
        <%= Html.ValidationMessageFor(model => model.FirstName) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.MiddleName) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.MiddleName) %>
        <%= Html.ValidationMessageFor(model => model.MiddleName) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.LastName) %>
    </div>
    <div class="editor-field">
        <%= Html.TextBoxFor(model => model.LastName) %>
        <%= Html.ValidationMessageFor(model => model.LastName) %>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.Class) %>
    </div>
    <%using (Ajax.BeginForm("Details", new AjaxOptions { 
                    UpdateTargetId = "EntranceMarks" }))
    { %>
    <div class="editor-field">
        <%=Html.DropDownList("StudentClass")%>
    </div>
    <div class="editor-label">
        <%= Html.LabelFor(model => model.Section) %>
    </div>
    <div class="editor-field">
        <%=Html.DropDownList("Section")%>
    </div>
    <div class="editor-label" id="EntranceMarks">
    </div>
    <%} %>      
    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
<% } %>
<div>
    <%= Html.ActionLink("Back to List", "Index") %>
</div

Теперь, когда я изменяю поле выпадающего списка для класса, я не могу запустить событие ??

1 Ответ

1 голос
/ 30 октября 2010

Вам нужно включить дескриптор onchange при создании выпадающего списка.Метод ChangeClass(), о котором говорится ниже, - это имя функции javascript, которую необходимо создать.

<%=Html.DropDownList("StudentClass", new {onchange="ChangeClass()"})%>

Вы также можете использовать Jquery и связать событие onchange с раскрывающимся списком, который вас интересует.

$("#StudentClass").change(function() {
 // your logic goes here
 // if you need to populate some other part of the form
 // this method will probably have some ajax call to a specified
 // controller action which return your data.
});

Теперь, если вы хотите, чтобы форма была отправлена ​​при изменении раскрывающегося списка, это можно сделать с помощью

<%=Html.DropDownList("StudentClass", new {onchange="this.form.submit()"})%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...