J'ai créé une grille en utilisant le plugin jquery struts2. J'ai une colonne de la grille qui est la clé primaire de la table que je mets à non-éditable. Lorsque j'essaie de modifier l'une des lignes de la table dans la grille, la colonne de clé n'est pas transmise au serveur. J'ai essayé de définir l'attribut editable de la colonne clé sur true, c'est la seule fois où elle a envoyé la clé au serveur. Dans la vitrine, l'id est également défini sur non-editable mais le serveur le reçoit en tant que paramètre. Veuillez m'aider à ce sujet. Je pourrais manquer quelque chose.La colonne jquery struts2 de la grille editable = "false" n'est pas transmise au serveur
Voici mon code pour le 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>
Voici mon code pour l'action edit:
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;
}
}
Espérant vous des réponses immédiates. Merci beaucoup!
~ Honey =)