2014-02-09 2 views
0

В моем приложении Struts2/Java я разрешаю пользователю отправлять данные в приложение из JQGrid. Я использую функцию «saverow» для прокрутки каждой выбранной строки и отправки отредактированных ячеек. Эта функция находится в отдельном файле js, который включен в мой JSP.Обновление одного элемента страницы JSP без использования формы

function editRows(){ 


    for (...){ 
     ... 
     ... 
     ... 
     jQuery('#myGrid').jqGrid('saveRow,rowID,false,null,null,aftersavefunc); 
    } 

    getResponse(); 

} 

После того, как данные будут отправлены из этой функции, будет изменено количество переменных класса в моем классе действий. Я использую aftersavefunc для установки значения скрытых ячеек jqgrid (jqgrid 'setCell'), поэтому я могу вспомнить их позже из сетки.

У меня есть дополнительные значения, которые просто отображаются в div. Эти значения также обновляются в приложении после его выполнения. В то время, когда я выполняю функцию editRows(), упомянутую выше, следующий div уже отображается и отображает значение для каждого из полей в div. Эти начальные значения div являются результатом отправки предыдущей формы. Вот как выглядит div в моем JSP.

<div id="headerBar"> 
    <table> 
     <tr> 
      <td>Total Items: <s:property value="strutsActionName.totalItems</td> 
      ... 
      ... 
      ... 
     </tr> 
    </table>  
</div> 

Так, например, когда моя функция editRows в настоящее время выполняется, DIV уже показывает значение для «TotalItems» на веб-странице. Было бы просто выглядеть примерно так:

Total Items: 5 

После функции editRows выполнил, значение «TotalItems» был обновлен в приложении. Класс action java имеет последнее значение для totalRows.

Функция editRows вызывает другую функцию getResponse(), когда цикл завершен. Функция getResponse предназначена для получения скрытых значений jqgrid, которые я задал с помощью параметра aftersavefunc «saverow». Он использует jqGrid ('getCell') для получения обновленного значения этих скрытых ячеек jqGrid.

Я хочу, чтобы функция getResponse() также обновляла значение «totalItems». Это значение не находится в jqGrid. Мне нужно обновить отдельное поле и получить обновленное значение. Например, после завершения редактирования editRows() значение «totalItems» могло быть удвоено до 10 с 5.

В моей функции getResponse() я попытался обновить это значение, используя следующее, но это не работает.

document.getElementById('headerBar').reload 

Мне просто нужно обновить значения в этом div без отправки формы.

ответ

0

Тег свойства обрабатывается со стороны сервера, чтобы он не обновлялся до тех пор, пока запрос не будет отправлен на сервер.

Как я вижу, лучшим способом для этого было бы поместить значение свойства внутри элемента с идентификатором, например span или p, а затем использовать document.getElemenrById для извлечения этого элемента элемента и изменения его содержимого из javascript после извлечения его новой ценности.

+0

просто нужно некоторое уточнение. вы сказали изменить его «из» javascript. не совсем точно, что вы имеете в виду. Итак, у меня будет

+0

Да более или менее, но введите span внутри td, чтобы вы могли изменить только текст – vbazaga86

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