2

我对如何实现以下目标有疑问:

我有一个包含活动的下拉列表,我希望在活动的 onchange 事件上,我的列表将使用我的模型中设置的 ajax id 获取

我的代码示例如下

设置ID的Ajax方法

 function GetSelectedValue(DropDownID, HiddenFieldID) {

    $('#' + HiddenFieldID).val($('#' + DropDownID + ' option:selected').val());

    $('#' + DropDownID).change(function () {
        $('#' + HiddenFieldID).val($('#' + DropDownID + ' option:selected').val());

        $.ajax({
            url: 'Afmeldingen',
            type: "POST",
            data: JSON.stringify({ 'ActiviteitenID': $('#' + DropDownID + ' option:selected').val() }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                jQuery.globalEval(data.Callback);
            },
            error: function (error) {
                //alert(error);
            }
        });
    });
}
$(document).bind('pageinit', function () {
    GetSelectedValue('details', 'act_id');
});

表单元素

@using (Html.BeginForm())
{
    <div data-role="collapsible" data-inline="true" data-content-theme="b" data-collapsed="false">
        <h3>@DateTime.Today.ToShortDateString()</h3>
        <div data-role="collapsible-set" data-inline="true" data-content-theme="b" data-collapsed="true">
            <select id="details">
                @foreach (var item in Models.Taken.ActivityList)
                {
                    <option value="@item.ID">@item.Comments</option>
                }
            </select>
            @Html.Hidden("act_id")
            @foreach (var item in Talent.Subscription.Fetch(null, Models.Taken.ActID ?? 1L, null, null))
            {
                <div data-role="collapsible" data-content-theme="b" data-collapsed="true">
                    <h3>
                        @Html.Label("", item.Participant.CompleteName)
                    </h3>
                    @Html.CheckBoxFor(m => m.DeelnemerActive.HasValue, htmlAttributes: new { data_role = "CheckBox" })
                    @foreach (var af in Talent.Afmelding.Fetch(null, Models.Tasks.ActID ?? 1L, null, null))
                    {
                        @Html.Label("", "Comments")
                        @Html.TextBox("Reason", af.Reason);
                    }
                </div>
            }
        </div>
    </div>
}

我希望你能帮助我实现这一目标,或者你知道如何做到这一点

4

1 回答 1

4

这可能是我能找到的对你有帮助的最好的例子。

http://blog.krisvandermast.com/CommentView,guid,b1a264ac-c48f-463e-9f55-db24e2a9b635.aspx

他通过单击按钮从局部视图中动态加载数据。你可以在这里使用你的 onchange。

-

看看这个例子,看看级联下拉菜单是如何工作的:

http://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/cascading-dropdownlist-in-Asp-Net-mvc/

-

您还可以考虑使用淘汰赛 js,如下所述:

http://www.dotnetexpertguide.com/2012/06/cascading-dropdown-knockoutjs-aspnet.html

于 2013-05-21T13:05:24.743 回答