Question

Désolé pour un tas de questions Struts2 / JSP, mais j'ai une table générée avec balise d'affichage :

<display:table name="table" pagesize="10" id="row" requestURI="">
<display:column title="Action">
    <s:form theme="simple">
        <s:submit action="remove" value="Remove" 
        onclick="return confirm('Are you sure you want to delete this item?');"/>
        <s:submit action="displayEdit" value="Edit"/>
    </s:form>
</display:column>
<display:column property="cpc" title="CPC"/>
<display:column property="companyName" title="Company Name"/>
<display:column property="eventType" title="Event Type"/>
<display:column property="industryType" title="Industry Type"/>
<display:column property="previousEvents" />
<display:column property="creditNotifications" />
<display:column property="interimNotifyEnterprise" />
</display:table>

Maintenant, je veux être en mesure de supprimer ou de modifier une certaine ligne (je l'ai déjà les actions écrites sur), mais comment pourrais-je obtenir les données spécifiques pour chaque ligne afin que je puisse dire à ma classe Action quelle ligne modifier ou supprimer ?

Était-ce utile?

La solution

je en ai parlé dans le précédent question que vous avez demandé l'autre jour. Vous avez juste besoin de quelque chose dans votre ligne, peut-être un champ caché, qui peut être utilisé pour identifier de manière unique l'élément.

J'ai suggéré l'aide d'un <s:hidden key="rowID" /> de la ligne, qui se sont soumis à l'action. Tant que vous aviez une propriété comme celle sur votre objet, et dans l'action de suppression, vous aviez un setter pour recevoir cette valeur, vous pouvez l'utiliser pour identifier de manière unique la ligne.

Autres conseils

Il semble que votre table ne possède pas de champ identifiant unique en classe objet par ligne. Vous pouvez ajouter -id champ en vous-classe de haricots que vous allez afficher. (COMPANYID en classe de haricots Company). Alors que chaque ligne de la table affichera objet « entreprise » unique et selon le champ « COMPANYID » vous pouvez modifier / supprimer l'objet sélectionné en passant « COMPANYID » à la classe d'action.

Vous pouvez ne voulez afficher la colonne « COMPANYID » dans votre mise en page de l'interface utilisateur pour l'utilisateur final. Dans ce cas, vous pouvez simplement créer lien hypertexte de la colonne « modifier » et « supprimer » en utilisant « COMPANYID » en tant que paramètre.

Voir displaytag tutoriel à ce le site plus de détails.

utilisation ci-dessous pour obtenir ID de ligne. ex i bouton radio utilisée,

<display:column  property="radioButton" title="ID">
                  <input type="radio" value='<%=data_rowNum.intValue()-1%>' name='rowNr' onClick="fnEnableControls()"/>
</display:column>

u peut facilement obtenir la valeur de l'aide rowNr req.getParameter et sur cette base u peut obtenir l'enregistrement de la liste qui u ont fourni à la table d'étiquette d'affichage.

scroll top