Как обновить второй выпадающий список на основе значения первых в редактировании формы jQgrid

0

Я занимаюсь редактированием формы в jqGrid. Добавляя новую строку, у меня есть два раскрывающихся списка, где второе значение зависит от первого значения.

Я изо всех сил стараюсь, как заполнять Second DD на основе того, что мы выбираем на First.

Сначала имеют значения STATIC.

  • 0
    Посмотри на ответ .
  • 0
    @Oleg Олег, спасибо, но статическая загрузка данных. Мой динамичный. Допустим, ГОСУДАРСТВА приходят из БД. Я видел, у нас есть опция dataUrl. Могу ли я изменить значение этого параметра при изменении значения Country DD в блоке dataEvents? Тогда каждый раз я буду получать новые значения состояний из БД.
Показать ещё 2 комментария
Теги:
jqgrid

1 ответ

0
Лучший ответ

Он будет работать, как показано ниже.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD>

<script>


    grid.jqGrid({
        data: mydata,
        datatype: 'local',
         ondblClickRow: function(rowid) {
            jQuery(this).jqGrid('editGridRow', rowid,
                                {recreateForm:true,closeAfterEdit:true,
                                   closeOnEscape:true,reloadAfterSubmit:false});
           },
        colModel: [
            { name: 'Name', w 200 },
            { name: 'Country', width: 100, editable: true, formatter: 'select',
                edittype: 'select', editoptions: {
                    value: <someStaticOrDynamicValues>,                     
                    },
                    dataEvents: [
                        {
                            type: 'change',
                            fn: function(e) {
                                changeStateSelect(e);
                            }
                        }
                    ]
                }
            },
            {
                name: 'State', width: 100, editable: true, formatter: 'select',
                edittype: 'select', editoptions: { value: states }
            }
        ],      

    });

    function changeStateSelect(e){
            var countryId = $(e.target).val();
            $.ajax({
                url:"getStateList.html?countryId="+countryId,
                type: "post",
                success:function(newOptions){
                    var form = $(e.target).closest("form.FormGrid");
                    $("select#State.FormElement",form[0]).html(newOptions);
                }
            });
        }
</script>
 <BODY>

 </BODY>
</HTML>

Некоторые, где в JAVA

@RequestMapping(value = "/getStateList.html", method = RequestMethod.POST)
    public @ResponseBody
    String getSuperVisorList(@RequestParam("countryId") String countryId) throws Exception {

        StringBuffer select = new StringBuffer("<select>");
        select.append("<option value=''>  </option>");
        for (int i =0; i<10; i++) {
            select.append("<option value='" 
                        + i
                        + "'>" + "youValues" + "</option>");
        }
        select.append("</select>");
        return select.toString();
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню