Связывание Telerik MVC ComboBox со списком штатов США и передача выбранного значения обратно в контроллер

как связать поле со списком Telerik MVC со списком штатов США и передать значения из представления в контроллер?

Связывание Telerik MVC ComboBox со списком штатов США и передача выбранного значения обратно в контроллер.

Я хочу связать Telerik MVC Combobox с помощью функции Javascript. Я создал список штатов США в функции Javascript, и я назначаю этот список штатов США моему ComboBox... Чтобы отправить выбранный штат США обратно в контроллер, я взял HTML.TextBoxFor и установил его видимость на скрытый... в мой контроллер Я пытаюсь получить доступ к значению этого конкретного TextBox, но он всегда показывает нуль. Пожалуйста, помогите

следующий мой код: -

    <%= Html.Telerik().ComboBox()
    .Name("ComboBox")
    .ClientEvents(events => events
        .OnDataBinding("onDataBinding")
                           .OnChange("getComboBox")
    )
    %>
    <%: Html.TextBoxFor(model => model.EnrolRegAcntDescriptor.state, new { ID = "statetext", style = "visibility:hidden;width:10px" })%>
     <script type="text/javascript">
    function getComboBox() {
        //"ComboBox" is the value specified by the Name() method.
        debugger;
        var combobox = document.getElementById('ComboBox-value').value;
        var combotext = document.getElementById('ComboBox-input').value; //$("#ComboBox").data("tComboBox");
        var index = $("#ComboBox").data("tComboBox").value();
        //  var text = combotext.options[combotext.selectedIndex].value;
      //  var MySelectedvalue = document.getElementByid('tComboBox').options[document.getElementByid('tComboBox').selectedIndex].value
        var states = document.getElementById('statetext').value;
        states = combotext;
                 //   comboBox.select(index);
        //alert(index);
        return states;
    }

    <script type="text/javascript">
function onDataBinding(e) {
        var comboBox = $('#ComboBox').data('tComboBox');
        comboBox.dataBind([
            { Text: "ALABAMA", Value: "ALABAMA" },
            { Text: "ALASKA", Value: "ALASKA", Selected: true },
            { Text: "ARIZONA ", Value: "ARIZONA" },
            { Text: "ARKANSAS", Value: "ARKANSAS" },
            { Text: "CALIFORNIA", Value: "CALIFORNIA" },
            { Text: "COLORADO", Value: "COLORADO" },
            { Text: "CONNECTICUT", Value: "CONNECTICUT" },
            { Text: "DELAWARE ", Value: "DELAWARE" },
            { Text: "FLORIDA", Value: "FLORIDA" },
            { Text: "GEORGIA", Value: "GEORGIA" },
            { Text: "HAWAII", Value: "HAWAII" },
            { Text: "IDAHO", Value: "IDAHO" },
            { Text: "ILLINOIS", Value: "ILLINOIS" },
            { Text: "INDIANA", Value: "INDIANA" },
            { Text: "IOWA", Value: "IOWA" },
            { Text: "KANSAS", Value: "KANSAS" },
            { Text: "KENTUCKY", Value: "KENTUCKY" },
            { Text: "LOUISIANA", Value: "LOUISIANA" },
            { Text: "MAINE", Value: "MAINE" },
            { Text: "MARYLAND", Value: "MARYLAND" },
            { Text: "MASSACHUSETTS", Value: "MASSACHUSETTS" },
            { Text: "MICHIGAN", Value: "MICHIGAN" },
            { Text: "MINNESOTA", Value: "MINNESOTA" },
            { Text: "MISSISSIPPI", Value: "MISSISSIPPI" },
            { Text: "MISSOURI", Value: "MISSOURI" },
            { Text: "MONTANA", Value: "MONTANA" },
            { Text: "NEBRASKA", Value: "NEBRASKA" },
            { Text: "NEVADA", Value: "NEVADA" },
            { Text: "NEW HAMPSHIRE", Value: "NEW HAMPSHIRE" },
            { Text: "NEW JERSEY", Value: "NEW JERSEY" },
            { Text: "NEW MEXICO", Value: "NEW MEXICO" },
            { Text: "NEW YORK", Value: "NEW YORK" },
            { Text: "NORTH CAROLINA", Value: "NORTH CAROLINA" },
            { Text: "NORTH DAKOTA", Value: "NORTH DAKOTA" },
            { Text: "OHIO", Value: "OHIO" },
            { Text: "OKLAHOMA", Value: "OKLAHOMA" },
            { Text: "OREGON", Value: "OREGON" },
            { Text: "PALAU", Value: "PALAU" },
            { Text: "PENNSYLVANIA", Value: "PENNSYLVANIA" },
            { Text: "RHODE ISLAND", Value: "RHODE ISLAND" },
            { Text: "SOUTH CAROLINA", Value: "SOUTH CAROLINA" },
            { Text: "SOUTH DAKOTA", Value: "SOUTH DAKOTA" },
            { Text: "TENNESSEE", Value: "TENNESSEE" },
            { Text: "TEXAS", Value: "TEXAS" },
            { Text: "UTAH", Value: "UTAH" },
            { Text: "VERMONT", Value: "VERMONT" },
            { Text: "VERGINIA", Value: "VERGINIA" },
            { Text: "WASHINGTON", Value: "WASHINGTON" },
            { Text: "WEST VIRGINIA", Value: "WEST VIRGINIA" },
            { Text: "WISCONSIN", Value: "WISCONSIN" },
            { Text: "WYOMING", Value: "WYOMING" }
        ], true /*preserve state*/);
    }


person Ashes    schedule 26.05.2011    source источник
comment
Написали ли вы функцию javascript cilentside для onchange getComboBox(e), которая должна позволить вам получить выбранное значение e.Value, а затем вы можете сделать ajax-вызов соответствующему контроллеру/действию, передавая параметр. ?   -  person kanchirk    schedule 26.05.2011
comment
можешь показать код? Я написал метод Ajax.beginForm, и я получаю доступ к своим значениям формы в своем контроллере.   -  person Ashes    schedule 26.05.2011
comment
попробуйте эту функцию getComboBox(e) { alert($(e).val()) }   -  person kanchirk    schedule 26.05.2011


Ответы (1)


Нашел ответ самостоятельно. Сделал несколько изменений в коде следующим образом.

      <%: Html.TextBoxFor(model => model.EnrolRegAcntDescriptor.state, new { type="Hidden", ID = "statetext", style = "width:10px" })%> 
      function getComboBox() {


        var combobox = document.getElementById('ComboBox-value').value;
        var combotext = document.getElementById('ComboBox-input').value; 
        var index = $("#ComboBox").data("tComboBox").value();

        var states = document.getElementById('statetext').value;
        document.getElementById('statetext').value = index;                    
      //  alert(index);
        return states;
    }
person Ashes    schedule 27.05.2011