Как определить текущую строку в табличной форме Apex? - PullRequest
1 голос
/ 19 июля 2010

Друзья,

Я написал следующий JavaScript, чтобы выяснить, в какой строке табличной формы находится пользователь в данный момент. то есть они щелкнули список выбора в строке 4. Мне нужен номер строки, чтобы затем получить правильное значение поля в той же строке, которое я затем смогу выполнить для дальнейшей обработки.

Что делает этот JavaScript, так это получает идентификатор запускающего элемента, например, f02_0004 Это говорит мне, что список выбора в столбце 2 строки 4 был выбран. Таким образом, мой Javascript получает только информацию о строке, т.е. 0004, а затем использует ее для ссылки на другое поле в этой строке, и в данный момент просто выводит значение, чтобы показать, что у меня правильное значение.

<script language="JavaScript" type="text/javascript">
   function cascade(pThis){      
      var row = getTheCurrentRow(pThis.id);
      var nameAndRow = "f03_" + row;
      var costCentre = $x(nameAndRow).value;
      alert("the cost centre id is " + costCentre);

}
   // the triggerItem has the name fxx_yyyy where xx is the column number and 
   // yyyy is the row. This function just returns yyyyy    
   function getTheCurrentRow(triggerItem){   
      var theRow = triggerItem.slice(4);
      return theRow;         
}

Хотя это работает, я не могу избавиться от ощущения, что я, должно быть, заново изобретаю колесо и что или есть встроенные, которые я могу использовать, или, если нет, может быть, «лучше»?

В случае необходимости я использую Apex 4.0

Заранее благодарим за все, что вы можете предоставить.

1 Ответ

2 голосов
/ 19 июля 2010

Что вы описали, это именно то, что я обычно делаю сам!

Альтернативой в Apex 4.0 может быть использование jQuery для навигации по DOM примерно так:

var costCentre = $(pThis).parents('tr').find('input[name="f03"]')[0].value;

Я проверил это, и он работает нормально в моей тестовой форме.

...