2012-07-23 16 views
10

के साथ फ़ॉर्म सबमिट करते समय डेटाटेबल की सामग्री अपडेट करना मैं किसी फॉर्म की सामग्री (इसे खोजबार कार्यक्षमता के रूप में सोचने) के आधार पर डेटाटेबल की सामग्री को बदलना चाहता हूं। मैं विकेट 1.5.x में ऐसा करता था लेकिन मुझे लगता है कि यह विकेट 6.0.0-बीटा 2 में काम नहीं कर रहा है। यह अजाक्स बटन के सबमिट विधि में प्रवेश नहीं प्रतीत होता है। बाकी सब कुछ ठीक काम करता है, हर घटक सही ढंग से प्रस्तुत करता है और डेटा लोड होने पर डेटाटेबल सही डेटा से भरा होता है, लेकिन जब मैं बटन पर क्लिक करता हूं, तो कुछ भी नहीं होता है।विकेट 6.0.0-बीटा 2 अजाक्सबटन

किसी भी मदद की सराहना की जाएगी।

DataTable:

private class SearchForm extends Form<String> { 
private static final long serialVersionUID = 1L; 

private String tnModel; 
private Label tnLabel = new Label("tnLabel", "Telephone Number :"); 
private TextField<String> tn; 

public SearchForm(String id) { 
    super(id); 
    tn = new TextField<String>("tnTextField", new PropertyModel<String>(this, "tnModel")); 
    tn.setOutputMarkupId(true); 
    add(tnLabel); 
    add(tn); 

    AjaxButton lSearchButton = new AjaxButton("searchButton") { 
    private static final long serialVersionUID = 1L; 

    @Override 
    protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
     SubscriberFilter filter = new SubscriberFilter(); 
     target.add(table); 
     if (!(tn.getValue() == null) && !tn.getValue().isEmpty()) { 
     filter.setTn(tn.getValue()); 
     } 
     // giving the new filter to the dataProvider 
     subscriberDataProvider.setFilterState(filter); 
    } 

    @Override 
    protected void onError(AjaxRequestTarget target, Form<?> form) { 
     // TODO Implement onError(..) 
     throw new UnsupportedOperationException("Not yet implemented."); 
    } 

    }; 
    lSearchButton.setOutputMarkupId(true); 
    this.setDefaultButton(lSearchButton); 
    add(lSearchButton); 
} 
} 
+0

क्या आपने परीक्षण किया है यदि आप ऑनबमिट() पर पहुंचते हैं? डीबग संदेश या डीबगर के माध्यम से? – bert

+0

हां, जैसा कि मैंने अपने प्रश्न में कहा था, यह सबमिट नहीं कर रहा है() और मुझे नहीं पता कि क्यों ... – jrochette

+0

यह टिकट हो सकता है: https://issues.apache.org/jira/browse/विकेट -4630? (एक तरफ ध्यान दें: आप जानते हैं कि 6.0.0 बीटा -3 उपलब्ध है?) –

उत्तर

0

घटक है कि आप को ताज़ा करना चाहते हैं में जोड़ा जाना चाहिए:

public SubscriberPage(PageParameters parameters) { 
super(parameters); 
add(new SearchForm("searchForm")); 

List<IColumn<Subscriber, String>> columns = new ArrayList<IColumn<Subscriber, String>>(); 
columns.add(new PropertyColumn<Subscriber, String>(new Model<String>("Telephone Number"), 
                "tn", 
                "tn")); 
[...] 
columns.add(new PropertyColumn<Subscriber, String>(new Model<String>("Initialized MB"), 
                "initializedMB")); 

table = new AjaxFallbackDefaultDataTable<Subscriber, String>("table", 
                  columns, 
                  subscriberDataProvider, 
                  40); 
table.setOutputMarkupId(true); 
add(table); 
} 

और यहाँ AjaxButton साथ रूप है यहाँ की तरह मेरे कोड नज़र है एक बक्सा। जब आप जमा करते हैं, तो कंटेनर को लक्ष्य में जोड़ा जाना चाहिए। इस तरह आपके घटकों को ताज़ा किया जाएगा। कुछ ऐसा:

WebMarkupContainer outputContainer = new WebMarkupContainer("searchResult"); 
outputContainer.setOutputMarkupId(true); 
outputContainer.add(table); 
add(outputContainer); 

@Override 
protected void onSubmit(AjaxRequestTarget target, Form<?> form) { 
    //change table ..... stuff ..... ... 

    //refresh container 
    target.add(outputContainer); 
} 


<div wicket:id="searchResult"></div> 
संबंधित मुद्दे