2015-05-08 3 views
0

Мое требование - когда я нажимаю на любую строку в расширенной сетке, значение в раскрывающемся меню должно меняться, например, когда я нажимаю на строку1, . 1-й вариант в раскрывающемся списке должен быть показано, когда я нажимаю на строку2, второй вариант должен отображаться в раскрывающемся списке, как только пользователь нажимает на строку2, аналогично для других строк ... Найди скрипку http://jsfiddle.net/x9kLbqz5/4/.Событие rowclick для изменения значения выпадающего списка в сетке dojo

я могу иметь возможность получить информацию о строках, когда-либо пользователь нажимает на любом из row.Below является код:

dojo.connect(grid, "onRowClick", function(evt){ 
    var idx = evt.rowIndex, 
    item = this.getItem(idx); 
    dojo.byId("results").innerHTML = "You have clicked on " 
        + this.store.getValue(item, "id"); 
      }); 

Но вопрос я не мог в состоянии продолжить писать JavaScript, чтобы изменить выпадающее меню на основе пользователя строки. Еще одно требование - строки должны быть редактируемыми, что достигается с помощью редактируемое: 'true' при определении столбцов. Пожалуйста, предложите, как я могу отобразить значение списка меню выпадающего меню в зависимости от строки, нажатой пользователем. Спасибо.

--EDIT--

Мое фактическое требование, когда я нажимаю на любой строке в сетке, возьмите COLUMN1 значение и нажмите на контроллер пружины так, что на основе этого значения ярового контроллера возвращает значение раскрывающегося, который мне нужен для отображения в выпадающем меню. Пожалуйста, см. Скрипку: http://jsfiddle.net/x9kLbqz5/7/ Но проблема в том, когда я вызываю функцию javascript getDropDownValue (id); внутри dojo.connect (сетка, «onRowClick», функция (evt), строки больше не редактируются, я хочу, чтобы строка также редактировалась, а также вызывала функцию javascript, чтобы я мог сделать вызов ajax контроллеру весны ., чтобы получить динамическое значение раскрывающегося списка и показать в раскрывающемся списке

 dojo.connect(grid, "onRowClick", function(evt){ 
     var idx = evt.rowIndex, 
     item = this.getItem(idx); 
     dojo.byId("results").innerHTML = "You have clicked on " 
         + this.store.getValue(item, "id"); 
      var id = this.store.getValue(item, "id"); 
      alert("item:" + id); 
getDropDownValue(id);  
       }); 

function getDropDownValue(ColumnValue){ 
    alert("getDropDownValue"); 
    //ajax call to hit spring controller and get the dropdown value 
    var column1 = columnValue; 
     var xmlHttp; 
     if (window.XMLHttpRequest) 
     { 
      xmlHttp= new XMLHttpRequest(); 
     } 
     else if (window.ActiveXObject) 
     { 
      xmlHttp= new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     var url = <%=request.getContextPath%>+"/getDropDownValue.htm?id="+column1; 
     xmlHttp.onreadystatechange = function() { 
      handleServerResponse(xmlHttp); 
     }; 
     xmlHttp.open("GET", url, true); 
     xmlHttp.send(null); 

     function handleServerResponse(xmlHttp) 
     { 
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
      { 
       if (xmlHttp.responseText != "null") 
       { 
      //handle response 
       } 
      } 
     } 
} 

ответ

1

Я обновил JsFiddle (http://jsfiddle.net/x9kLbqz5/5/) 1) SelectedIndex установит значение в раскрывающемся списке 2) редактируемом:. правда это логическое значение, а не строка.

Благодаря Srikant

//Set the value in the dropdown 
 
dojo.byId('a').selectedIndex = this.store.getValue(item, "id"); 
 
//Editable columns (double click or click +Enter) 
 
var layout = [[ 
 
     {'name': 'Column 1', 'field': 'id', 'width': '100px'}, 
 
     {'name': 'Column 2', 'field': 'col2', 'width': '100px',editable:true}, 
 
     {'name': 'Column 3', 'field': 'col3', 'width': '200px',editable:true}, 
 
     {'name': 'Column 4', 'field': 'col4', 'width': '150px',editable:true}, 
 
     {'name': 'Last', 'field': 'last', 'width': '150px',editable:true} 
 
    ]];

Благодаря Srikant

+0

Благодаря @Srikant Sahu, мое фактическое требование, когда я нажимаю на любой строке в сетке, возьмите COLUMN1 значение и нажмите контроллер пружины, так что на основе этого значения весенний контроллер возвращает выпадающее значение, которое мне нужно отобразить в выпадающем меню, чтобы сделать его простым, я изменил свой qu estion, но кажется, что он не удовлетворяет моему требованию, извините :(. Можете ли вы предложить, как я могу вызвать метод javascript, когда я нажимаю на строку и могу получить доступ к id в javascript, чтобы я мог сделать вызов ajax контроллеру Spring в javascript, чтобы получить значение раскрывающегося списка, которое извлекается из базы данных. – user222

+1

Привет .... Я обновил скрипку http://jsfiddle.net/x9kLbqz5/8/. Я ввел новую функцию getValuesFromController (id). Это фактически принимает идентификатор и вызывает URL-адрес с использованием dojo/request (ajax) ... Затем функция имеет успешный и обработчик ошибок, который может использоваться соответственно. Пожалуйста, проголосуйте за ответ, если он соответствует вашим потребностям. –

Смежные вопросы