Hi everyone, I'm using wicket 1.4.8, and IE6(IE 6 request due to project
restriction).
    I have a three pages, Menu(on left side), List(top on the right),
Detail(buttom on the right).
The List page is simply like a bookshelf that shows each book's name. When I
click one of the book on the List. The book's info will be shown on the
Detail page.

    Because of all books' data is coming from database, so I implement my
pageable dataprovider and a custom listview so tha each book presented on
the html table just like <td wicket:id="1"><span
wicket:id="text1"></span></td>

List.page
<form wicket:id="ListForm" target="_detail">
<table  frame="border" rules="none" cellspacing="0px" id="dataView">
    <tr style="background-color:#FF9">
        <th>1st Column</th>
        <th>2nd Column</th>
        <th>3rd Column</th>
        <th>4th Column</th>
    </tr>
    <tr wicket:id="selectList" onclick="ListForm.submit()">
    <td wicket:id="1"><a href="#" wicket:id="link1" target="_detail"><span
wicket:id="text1"></span></a></td>
    <td wicket:id="2"><a href="#" wicket:id="link2" target="_detail"><span
wicket:id="text2"></span></a></td>
    <td wicket:id="3"><a href="#" wicket:id="link3" target="_detail"><span
wicket:id="text3"></span></a></td>
    <td wicket:id="4"><a href="#" wicket:id="link4" target="_detail"><span
wicket:id="text4"></span></a></td>
    </tr>
</table>
</form>

Then I process the above html code as a subclass of Link, process all
onClick/onSubmit. And it would be fine if I just want to show info page on
the List. If I set onClick to setResponsePage(new BookDetailPage(Book aBook,
...other Param));

List.java

void onClick()
{
    setResponsePage(new BookDetailPage(Book aBook, ...other Param));
}

Detail.html
<form wicket:id="EditForm">
    <span wicket:id="booksId"></span>
    <input type="text" wicket:id="booksName"></input>
    <input type="text" wicket:id="booksPublisher"></input>
    <span wicket:id="booksUpdateTime"></span>
    <p></p>
    <input type="submit" wicket:id="btnCommit"></input>
</form>

But what I want is to show book info (BookDetailPage) on the detail page. so
I use 3 iframes to include those 3 pages into one page - book_index, then
process all iframe to wicket class InlineFrame.
The reason of using iframe is to decrease the full-page reload and db
connection that bookshelf uses.

Book_Index.html
<form>
<iframe wicket:id="_iMenu" frameborder="1" framespacing="0" width="20%"
height="100%" align="left"></iframe>
<iframe wicket:id="_iList" frameborder="1" framespacing="0" width="80%"
height="75%" align="top" scrolling="no"></iframe>
<iframe wicket:id="_iDetail" name="_detail" frameborder="1" framespacing="0"
width="80%" height="25%" align="buttom"></iframe>
</form>

Book_Index.java
    Books_Index()
    {
        super();
        add(new InlineFrame("_iMenu", new LeftMenu()));
        FunctionPage master = new FunctionPage(this);

        InlineFrame f_master = new InlineFrame("_iList",master);
        add(f_master);

        DataEditPage detail = new DataEditPage();
        InlineFrame iDetail = new InlineFrame("_iDetail", detail);
        iDetail.setOutputMarkupId(true);
        add(iDetail);

        master.setEditorPage(detail, this);
    }

I've tried to specified form post target, url target on the List.html but
not works.
Or use it on List

ListPage
void onClick()
{
    /* init actions */

    /* target is still remain in self */
     this.RequestCycle().setRequestTarget(new
PageReferenceRequestTarget(detailPage));
     this.setResponsePage(new DetailPage());

    /*  no compatible RequestTarget for InlineFrame*/
     this.RequestCycle().setRequestTarget(detailFrame);
     this.setResponsePage(new DetailPage());
}


Is any way that can set link/post target to the detail frame, or other way I
should do without iframe?

Regards,
Victor Chen

Reply via email to