Vijaya--
You can also do the same tab index calculations for tables A and B
in the JSP itself using scriptlets that implement the UI rendering
calculations for each table's tab indexes. This will make the page
more obvious (ie easier to debug) as well as helping it render faster
by avoiding expression evaluations that call back to the page flow for
each tab index.
The example below is based on Beehive; if you're using Workshop 8.1,
replace the tabIndex variable with the <netui:attribute> idiom Carlin
mentioned.
An example is below.
Cheers,
Eddie
============================
<%
int tabIndex = 1; // the starting tab index value
int tabSkip = 1; // tabSkip is the number of HTML form
fields in each table
int tableATabIndex = -1; // the tab index value for table A
int tableBTabIndex = -1; // the tab index value for table B
%>
<span style="font-weight:bold">Repeating Tab Index</span>
<netui:form action="updateMenu">
<netui:anchor formSubmit="true" tabindex="<%= tabIndex++
%>">Update</netui:anchor><br/>
<%--
Set the starting points for table A's tab index and table B's tab
index. This could be done
with simple equations to calculate the running index using only the
tabIndex, but this
example is slightly more obvious. tableATabIndex and tableBTabIndex just
keep independent track of the tab index for the next form element in
each table.
--%>
<%
tableATabIndex = tabIndex;
tableBTabIndex = tabIndex+tabSkip;
%>
<span style="font-weight:bold">Table A</span>
<table style="border-width: 2px; border-spacing:0px; border-style:solid;">
<tr>
<th>Item</th>
<th>Quantity</th>
</tr>
<netui-data:repeater dataSource="actionForm.items">
<tr>
<td>${container.item.name}</td>
<td><netui:textBox dataSource="container.item.quantity"
tabindex="<%= tableATabIndex++ %>"/></td>
<%-- Set the next tableATabIndex --%>
<% tableATabIndex += tabSkip; %>
</tr>
</netui-data:repeater>
</table>
<span style="font-weight:bold">Table B</span>
<table style="border-width: 2px; border-spacing:0px; border-style:solid;">
<tr>
<th>Item</th>
<th>Quantity</th>
</tr>
<netui-data:repeater dataSource="actionForm.items">
<tr>
<td>${container.item.name}</td>
<td><netui:textBox dataSource="container.item.quantity"
tabindex="<%= tableBTabIndex++ %>"/></td>
<%-- Set the next tableBTabIndex --%>
<% tableBTabIndex += tabSkip; %>
</tr>
</netui-data:repeater>
</table>
<%--
After both tables have been rendered, set the tabIndex based on
the last tab
index from Table B so that subsequent tab indexes are calculated
correctly.
--%>
<% tabIndex = tableBTabIndex+1; %>
<netui:anchor formSubmit="true"
tabindex="<%= tabIndex++ %>">Update</netui:anchor>
</netui:form>
============================
On 10/18/07, Carlin Rogers <[EMAIL PROTECTED]> wrote:
> Vijaya,
>
> I think you're using an early version of NetUI that shipped with
> WebLogic 8.1. The expressions and tags are a little different.
> However, you can make this work using the <netui:attribute> tag with a
> page flow expression similar to the example I posted earlier to get
> the value of the tabindex from the page flow and set a tabindex
> attribute on the textBox. Try this...
>
> <netui:textBox dataSource="{container.item}">
> <netui:attribute name="tabindex" value="{pageFlow.tabIndexA}"/>
> </netui:textBox>
>
> Kind regards,
> Carlin
>
> On 10/17/07, Scott Hammer <[EMAIL PROTECTED]> wrote:
> > What does the generated HTML look like? Can you verify that the proper
> > numbers are being inserted into the rendered HTML?
> >
> >
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, October 17, 2007 6:54 AM
> > To: [email protected]
> > Subject: Issue in tab order of netui:data repeaters
> >
> >
> > Hi,
> >
> >
> >
> > Can anyone help us on this issue?
> >
> >
> >
> > Description of the tab order problem we are facing
> >
> > In our application we are using netui:data repeaters to display the
> > values from arraylist or array (which contains values from the
> > database). We have an issue regarding its usage that has been explained
> > below:
> >
> > There are 2 netui:data repeaters in a jsp, call them as A and B, each of
> > them having 10 values.Now when we use tab key to move, the tab order
> > goes through all the 10 values of Data repeater A and then it moves to
> > the Data repeater B and covers all 10 values. The user wants the cursor
> > to move to the first value of Data repeater A on first tab hit and on
> > second tab it should go to 1st value of Data repeater B. Similarly third
> > tab press should go to 2nd value of data repeater A and 4th to 2nd value
> > of Data repeater B.
> >
> >
> >
> > Our understanding of the problem
> >
> >
> >
> > In our below example, we fetch the list of values and store in string
> > array strAccountPurchaseSize. This string array is populated with values
> > from database in DAO classes. The repeater tag binds to this array and
> > starts rendering its body. After the repeater completes one complete
> > iteration, the repeater for the next column starts rendering the page.
> > Hence the tab order also works in the same manner as the way the
> > repeater renders the data.
> >
> > <netui-data:repeater
> > dataSource="{actionForm.strAccountPurchaseSize}" ignoreNulls="true" >
> >
> > <netui-data:repeaterItem>
> > <tr
> > align="center">
> > <td>
> >
> > <netui:textBox tagId="account" dataSource="{container.item}" size="30"
> > style="font-family:verdana;font-size:8pt" />
> > </td>
> > </tr>
> >
> > </netui-data:repeaterItem>
> >
> > </netui-data:repeater>
> >
> >
> >
> > Things we have already tried:
> >
> >
> >
> > 1. We tried defining page flow variables in jsp and the variable
> > was incremented for every page loading.
> >
> > Eg:
> >
> > private int tabIndexA = -1;
> >
> > private int tabIndexB = 0;
> >
> > public int getTabIndexA() {
> >
> > tabIndexA = tabIndexA + 2;
> >
> > return tabIndexA;
> >
> > }
> >
> > public int getTabIndexB() {
> >
> > tabIndexB = tabIndexB + 2;
> >
> > return tabIndexB;
> >
> > }
> >
> > Then in the repeater tag include the tabindex attribute using an
> > expression to get the desired tab index value. For example,
> >
> > <netui:textBox ... tabindex="${pageFlow.tabIndexA}">
> >
> > and
> >
> > <netui:textBox ... tabindex="${pageFlow.tabIndexB}">
> >
> >
> >
> > 2. We tried setting tabindex property of data repeaters. Still the
> > tab order goes across the rows of the first column and then moves to the
> > first row of the second column.
> >
> >
> >
> > Thanks,
> >
> > Vijaya
> >
> >
> >
> >
> >
> > This e-mail and any files transmitted with it are for the sole use of
> > the intended recipient(s) and may contain confidential and privileged
> > information.
> > If you are not the intended recipient, please contact the sender by
> > reply e-mail and destroy all copies of the original message.
> > Any unauthorized review, use, disclosure, dissemination, forwarding,
> > printing or copying of this email or any action taken in reliance on
> > this e-mail is strictly prohibited and may be unlawful.
> >
> > Notice: This email message, together with any attachments, may contain
> > information of BEA Systems, Inc., its subsidiaries and affiliated
> > entities, that may be confidential, proprietary, copyrighted and/or
> > legally privileged, and is intended solely for the use of the individual or
> > entity named in this message. If you are not the intended recipient, and
> > have received this message in error, please immediately return this by
> > email and then delete it.
> >
>