jquery struts2 grid column editable = "false" не передается на сервер - PullRequest
0 голосов
/ 16 ноября 2010

Я создал сетку, используя плагин сетки jquery struts2.У меня есть столбец сетки, который является первичным ключом таблицы, который я установил как недоступный для редактирования.Когда я пытаюсь редактировать одну из строк таблицы в сетке, ключевой столбец не передается серверу.Я попытался установить для редактируемого атрибута ключевого столбца значение true, тогда это единственный раз, когда он отправлял ключ на сервер.В витрине идентификатор также установлен как недоступный для редактирования, но сервер получает его в качестве параметра.Пожалуйста, помогите мне в этом.Я мог что-то упустить.

Вот мой код для jsp:

<s:url id="adm201_grid" action="adm201grid">
  <s:param name="bomId" value="%{bom.bomId}"/>
</s:url>
<s:url id="adm201_edit_grid" action="adm201editgrid">
  <s:param name="bomId" value="%{bom.bomId}"/>
</s:url>
<s:url id="select_material" action="select_material"/>
<sjg:grid
  gridModel="gridModel"
  caption="Bill of Materials"
  href="%{adm201_grid}"
  dataType="json"
  pager="true"
  navigator="true"
  navigatorSearchOptions="{multipleSearch:true}"
  navigatorEdit="true"
  navigatorDelete="true"
  rowList="10,15,20"
  rowNum="15"
  editurl="%{adm201_edit_grid}"
  editinline="false"
  multiselect="true"
  width="500"
  navigatorAddOptions="{reloadAfterSubmit:true}"
  navigatorEditOptions="{reloadAfterSubmit:false}"
  >
  <sjg:gridColumn
    name="bomMatId"
    index="bomMatId"
    title="BOM Material ID"/>
  <sjg:gridColumn
    name="material.materialId"
    title="Material"
    sortable="true"
    editable="true"
    edittype="select"
    editoptions="{dataUrl:'%{select_material}'}"
    formatter="integer"
    width="40"/>
  <sjg:gridColumn
    name="material.descrip"
    title="Description"
    sortable="true"
    width="150"/>
  <sjg:gridColumn
    name="material.unit"
    title="Unit"
    sortable="true"
    width="30"/>
  <sjg:gridColumn
    name="quantity"
    title="Quantity"
    sortable="true"
    editable="true"
    edittype="text"
    formatter="integer"
    width="40"/>
</sjg:grid>

Вот мой код для действия редактирования:

    public class ADM201EditGrid extends ActionSupport {

    private static final long serialVersionUID = 3887575129335166744L;

    private String oper;
    private BOMMaterials bomMaterials;
    private BOMMaterialsDao bomMatDao = new BOMMaterialsDao();
    private Long bomId;
    private Material material;
    private Long quantity;
    private Long bomMatId;

    // getters and setters    

    @Override
    @Actions( {
      @Action(value = "/adm201editgrid", results = {
        @Result(name = "success", location = "simpleecho.jsp"),
        @Result(name = "input", location = "simpleecho.jsp")
      })
    })
    public String execute() throws Exception {
   if (oper.equals("add") || oper.equals("edit")) {
    bomMaterials = new BOMMaterials();
    bomMaterials.setBomId(bomId);
           bomMaterials.setBomMatId(bomMatId);
    bomMaterials.setMaterial(material);
    bomMaterials.setQuantity(quantity);

    bomMatDao.save(bomMaterials, bomMaterials.getBomMatId());
   }
      return SUCCESS;
    }
  }

Надеюсь на васнемедленные ответы.Большое спасибо!

~ Мед =)

1 Ответ

1 голос
/ 26 августа 2011

Вместо того, чтобы установить для editable значение false, попробуйте установить для hidden значение true, в этом случае оно будет передано на сервер и не будет отображаться в диалоговом окне добавления / редактирования таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...