Как создать каскадные ddl с использованием модели Entity Framework сначала с использованием MVC3? - PullRequest
0 голосов
/ 27 ноября 2011

Я новичок в структуре MVC-сущностей, моя модель представляет собой модель структуры сущностей, и у меня есть таблица сравнения, которая имеет отношение к таблице провинции, которая имеет отношение к таблице страны.

Итак, когда я собираюсь создать коммерцию, я должен иметь возможность выбрать сначала страны, а затем провинции, которые принадлежат этой стране.

Пока мне удалось отобразить страны и все провинции, но я понятия не имею, как изменить провинции после выбора страны ...

Я видел посты, где есть объяснение того, как сделать что-то подобное, используя бритву (я использую .net) и создание модели (сначала код или что-то в этом роде)

Буду очень признателен, если вы поможете мне в этом.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2011

Использование Jquery было бы лучшим решением для такой ситуации. Даже если вы еще не используете его. сохранение обратной передачи стоило бы того. Вот один пример отношений между государством (родителем) и округом (ребенком).

    <asp:DropDownList ID="ddlState" runat="server">
</asp:DropDownList>
<br />
<asp:DropDownList ID="ddlCounty" runat="server">
</asp:DropDownList>

Вот код jquery для реализации каскадного выпадающего списка.

        $(document).ready(function () {

        $("#<%= ddlState.ClientID %>").change(function () {

            var sourceddl = "<%= ddlState.ClientID %>";

            var stateid = $("#<%= ddlState.ClientID %> option:selected").val();
            var Stateid = { Stateid: stateid };

            $.ajax({
                type: 'POST',
                url: 'CacheSample.aspx/GetCounties',
                data: JSON.stringify(Stateid),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {

                    if (data.d) {                     

                    var options = [];                     
                                        if (result.d) {
                                            for (var i = 0; i < result.d.length; i++) {
                                                options.push('<option value="',
                                              result.d[i].countyID, '">',
                                              result.d[i].countyName, '</option>');
                                            }

                                            $("#<%= ddlCounty.ClientID %>").html(options.join(''));
                                        }                        
                     }
                },
                error: function () {
                    alert("Error! Try again...");
                }
            });

        });

    });

Я использую веб-метод для отставки округов для выбранного штата.

[WebMethod]
public static County[] GetCounties(int Stateid)
{
    County[] countiesArr = StatesCountyModel.GetCountyForState(Stateid).ToArray();
    return countiesArr;     
}

Полагаю, это должно вам помочь. Если вы новичок в Jquery, пожалуйста, дайте мне знать. Вам просто нужно включить несколько файлов javascript в свой проект, и вы можете использовать этот код.

Praveen

0 голосов
/ 27 ноября 2011

Короткий ответ: вы отправляете сообщения обратно и фильтруете провинции, или используете jQuery и делаете это на лету.

Сам, я бы отправил обратно ... но это только я.

...