Frage

Sorry für ein Bündel von Struts2 / JSP Fragen, aber ich habe eine Tabelle erzeugt mit Anzeigen-Tag :

<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>

Jetzt möchte ich in der Lage sein, zu löschen oder bearbeiten eine bestimmte Zeile (Ich habe bereits die Aktionen geschrieben), aber wie würde ich die spezifischen Daten für jede Zeile bekommen, damit ich meine Action-Klasse sagen kann, welche Zeile zu editieren oder löschen ?

War es hilfreich?

Lösung

Ich habe dies in der vorherigen Frage neulich gefragt. Sie müssen nur etwas in der Reihe, möglicherweise ein verborgenes Feld, das eindeutig das Element identifizieren verwendet werden kann.

Ich schlug vor, eine <s:hidden key="rowID" /> in der Zeile mit, die mit der Aktion vorgelegt bekommen würden. Solange Sie auf Ihrem Objekt eine Eigenschaft wie das hatten, und in der Aktion Entfernen, Sie hatten einen Setter diesen Wert zu erhalten, könnten Sie das verwenden, um die Zeile eindeutig zu identifizieren.

Andere Tipps

Es scheint, dass Ihre Tabelle nicht eindeutige Kennung Feld pro Zeile in der Object-Klasse hat. Sie können Feld -id in Sie Bean-Klasse hinzufügen, dass Sie angezeigt werden. (CompanyID in Unternehmen Bean-Klasse). Damit jede Zeile in der Tabelle wird angezeigt einzigartig ‚Unternehmen‘ Objekt und in Abhängigkeit von ‚CompanyID‘ Feld, das Sie können bearbeiten / löschen ausgewählte Objekt, indem ‚CompanyID‘ to Action-Klasse.

Sie können nicht wie auf dem Display ‚CompanyID‘ Spalte in der UI-Layout Endbenutzer. In diesem Fall können Sie nur Hyperlink von ‚Bearbeiten‘ erstellen und ‚Löschen‘ Spalte ‚CompanyID‘ als Parameter.

Siehe displaytag Tutorial in dieser Website Mehr Details.

Verwendung unten Reihe ID zu bekommen. zB i gebrauchte Radio-Button,

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

Jetzt kann u leicht den Wert von rowNr mit req.getParameter erhalten und auf dieser Basis kann u den Datensatz aus der Liste erhalten, die u-Display Tagtabelle geliefert hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top