2012-03-14 2 views
0

표시 태그 테이블에서 레코드의 ID를 전달하려고합니다. 그래서 ID의 값을 자바 스크립트에서 전달되는 다음 프로세스로 전달할 수 있습니다.디스플레이 태그 테이블 열의 매개 변수를 숨김으로서 첫 번째 레코드의 값을 항상 얻습니다.

이제 varSearchId 값을 출력 할 때 항상 디스플레이 태그 테이블의 첫 번째 레코드 ID를 얻습니다. 요구 사항에 따라 디스플레이에서 숨김으로

난 그냥 패스 ID 매개 변수 값으로합니다.

<display:table class="displayTable" id="ItemList" 
    name="${sessionScope.searchList}" pagesize="15" 
    defaultsort="2" defaultorder="ascending" sort="list"> 
    <display:column class="colSearchIngName" property=Name" 
     title="Name" sortable="true" headerClass="sortable"/> 
    <display:column class="colSearchIngPName" property="Class Name" 
     title="Class Name" sortable="true" headerClass="sortable"/> 
    <display:column title="" media="html"> 
     <a href="javascript:showWindow();">Add</a> 
     <input type="hidden" id="searchId" value="${ItemList.Id}" name="searchId"/> 
    </display:column> 
</display:table> 


function showWindow() 
{ 
    var varSearchId= document.getElementById("searchId").value; 
    alert(varSearchId); 
    //call another process passing the varSearchId value 
} 

답변

2

테이블의 모든 입력에 동일한 ID를 지정하면 잘못된 HTML이 생성됩니다. 브라우저는 예외를 던지기보다는이 ID를 가진 첫 번째 입력을 제공하기에 충분히 친절합니다 (?).

코드가 있어야한다 :

<a href="javascript:showWindow('${ItemList.id}');">Add</a> 
<input type="hidden" id="searchId_${ItemList.id}" value="${ItemList.id}" name="searchId"/> 

function showWindow(itemId) { 
    alert(itemId); 
    // call another process passing the itemId value 
} 

하지만 입력 필드는 어떤 목적을 제공하지 않습니다, 그래서 당신은 완전히 제거 할 수도 있습니다. 당신의 이름이 나쁜

참고 :

속성은 자바 나 자바 스크립트 변수로 지정해야
  • : 페이지 속성은 하나 개의 목록의 항목, 그리고에를 의미 itemList 오히려
  • ItemList보다 목록 자체이므로 ItemList이 아닌 item으로 지정해야합니다.
+0

고맙습니다. 그것은 지금 완벽하게 작동합니다. – kitokid