द्वारा स्क्रॉल करें, मुझे कुछ याद आ रहा है, लेकिन जीडब्ल्यूटी में डेटपिकर (मैं संस्करण 2.0.3 का उपयोग कर रहा हूं) आपको सालाना, केवल महीने तक स्क्रॉल करने की संभावना नहीं देता है। क्या मैं कुछ भूल रहा हूँ? मुझे पता है कि एक बाहरी lib (code.google.com/p/gwt-datepicker/) है जिसका उपयोग मैं कर सकता हूं, लेकिन मैं अभी तक एक और तृतीय पक्ष lib आयात करने से बचना चाहता हूं, जब आप डेटपिकर में ऐसा करने में सक्षम होना चाहिए जीडब्ल्यूटी मेंजीडब्ल्यूटी डेटपिकर, वर्ष
6
A
उत्तर
8
आपको डेटपिकर उप-वर्ग बनाने की आवश्यकता होगी जो आपके महीने के चयनकर्ता के कार्यान्वयन का उपयोग करेगी।
वहाँ उदाहरण कोड के साथ, यह बहुत विषय पर GWT Google समूह पर हाल ही में धागा है:
Getting the default DateBox() picker to advance year at a time
2
मैं तुम्हें नीचे की तरह कुछ चाहता हूँ लगता है।
यहां मैंने जीडब्ल्यूटी डेटपिकर को महीने और साल के चयनकर्ता को जोड़ने के लिए संशोधित किया है। मैं 2100 तक कैलेंडर सीमा निर्दिष्ट किया है, तो आप इसे अपनी इच्छा के अनुसार यह
import com.google.gwt.user.datepicker.client.CalendarModel;
import com.google.gwt.user.datepicker.client.DatePicker;
import com.google.gwt.user.datepicker.client.DefaultCalendarView;
public class DatePickerWithYearSelectorNew extends DatePicker {
public DatePickerWithYearSelectorNew() {
super(new MonthAndYearSelectorWithYear(), new DefaultCalendarView(),
new CalendarModel());
MonthAndYearSelectorWithYear monthSelector = (MonthAndYearSelectorWithYear)
this.getMonthSelector();
monthSelector.setPicker(this);
monthSelector.setModel(this.getModel());
}
public void refreshComponents() {
super.refreshAll();
}
}
import java.util.Date;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.PushButton;
import com.google.gwt.user.client.ui.HTMLTable.CellFormatter;
import com.google.gwt.user.datepicker.client.CalendarModel;
import com.google.gwt.user.datepicker.client.MonthSelector;
public class MonthAndYearSelectorWithYear extends MonthSelector {
private static String BASE_NAME = "datePicker";
private PushButton backwards;
private PushButton forwards;
private PushButton backwardsYear;
private PushButton forwardsYear;
private Grid grid;
private int previousYearColumn = 0;
private int previousMonthColumn = 1;
private int nextMonthColumn = 4;
private int nextYearColumn = 5;
private CalendarModel model;
private DatePickerWithYearSelectorNew picker;
private ListBox monthListBox;
private ListBox yearListBox;
public MonthAndYearSelectorWithYear() {
yearListBox = new ListBox();
for (int i = 1900; i < 2100; i++) {
yearListBox.addItem(i + "");
}
String[] items = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct", "Nov", "Dec" };
monthListBox = new ListBox();
for (int i = 0; i < items.length; i++) {
monthListBox.addItem(items[i]);
}
}
public void setModel(CalendarModel model) {
this.model = model;
}
public void setPicker(DatePickerWithYearSelectorNew picker) {
this.picker = picker;
}
@Override
protected void refresh() {
int monthIndex = getModel().getCurrentMonth().getMonth();
monthListBox.setItemSelected(monthIndex, true);
int yearIndex = getModel().getCurrentMonth().getYear();
// System.out.println(yearIndex);
yearListBox.setItemSelected(yearIndex, true);
}
@Override
protected void setup() {
// Set up backwards.
backwards = new PushButton();
backwards.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
addMonths(-1);
}
});
backwards.getUpFace().setHTML("‹");
backwards.setStyleName(BASE_NAME + "PreviousButton");
forwards = new PushButton();
forwards.getUpFace().setHTML("›");
forwards.setStyleName(BASE_NAME + "NextButton");
forwards.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (model.getCurrentMonth().getYear() < 199) {
addMonths(+1);
}
else if(model.getCurrentMonth().getMonth()<11
&&model.getCurrentMonth().getYear()==199)
{
addMonths(+1);
}
}
});
// Set up backwards year
backwardsYear = new PushButton();
backwardsYear.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
addMonths(-12);
picker.refreshComponents();
}
});
backwardsYear.getUpFace().setHTML("«");
backwardsYear.setStyleName(BASE_NAME + "PreviousButton");
forwardsYear = new PushButton();
forwardsYear.getUpFace().setHTML("»");
forwardsYear.setStyleName(BASE_NAME + "NextButton");
forwardsYear.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (model.getCurrentMonth().getYear() < 199) {
addMonths(+12);
picker.refreshComponents();
}
}
});
yearListBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
// int yearIndex = yearListBox.getSelectedIndex();
//
setYear(Integer.parseInt(yearListBox.getValue(yearIndex)));
setYear(yearListBox.getSelectedIndex());
}
});
monthListBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
int monthIndex = monthListBox.getSelectedIndex();
setMonth(monthIndex);
}
});
// Set up grid.
grid = new Grid(1, 6);
grid.setWidget(0, previousYearColumn, backwardsYear);
grid.setWidget(0, previousMonthColumn, backwards);
grid.setWidget(0, 2, monthListBox);
grid.setWidget(0, 3, yearListBox);
grid.setWidget(0, nextMonthColumn, forwards);
grid.setWidget(0, nextYearColumn, forwardsYear);
CellFormatter formatter = grid.getCellFormatter();
formatter.setWidth(0, previousYearColumn, "1");
formatter.setWidth(0, previousMonthColumn, "1");
formatter.setWidth(0, nextMonthColumn, "1");
formatter.setWidth(0, nextYearColumn, "1");
grid.setStyleName(BASE_NAME + "MonthSelector");
initWidget(grid);
}
public void addMonths(int numMonths) {
model.shiftCurrentMonth(numMonths);
picker.refreshComponents();
}
@SuppressWarnings("deprecation")
public void setMonth(int month) {
Date tempMonth = new Date();
tempMonth.setMonth(month);
model.setCurrentMonth(tempMonth);
picker.refreshComponents();
}
@SuppressWarnings("deprecation")
public void setYear(int year) {
// to set year
model.getCurrentMonth().setYear(year);
picker.refreshComponents();
}
}
संबंधित मुद्दे
- 1. jQuery यूआई - डेटपिकर - छुपाएं वर्ष
- 2. डब्ल्यूपीएफ टूलकिट डेटपिकर महीना/वर्ष केवल
- 3. jQuery डेटपिकर में वर्ष ड्रॉपडाउन स्क्रॉलबार के साथ समस्या
- 4. वर्ष फ़ील्ड के साथ या उसके बिना डेटपिकर प्रदर्शित करना
- 5. कस्टम डेटपिकर
- 6. JQuery डेटपिकर उपयोगकर्ता को
- 7. डेटपिकर
- 8. वर्ष
- 9. वर्ष
- 10. Jquery datepicker वर्ष बदलते हैं
- 11. टाइपरर: $ ("# डेटपिकर")। डेटपिकर फ़ंक्शन नहीं है
- 12. आईओएस में डेटपिकर को केवल महीना और वर्ष चुनने के लिए
- 13. jQuery डेटपिकर - "आज" तिथि बदलें?
- 14. डब्ल्यूपीएफ डेटपिकर
- 15. jQuery डेटपिकर
- 16. मोबाइल डेटपिकर
- 17. पायथन प्रश्न: वर्ष और वर्ष का दिन?
- 18. जीडब्ल्यूटी ऐप
- 19. जीडब्ल्यूटी: जीडब्ल्यूटी फ्लोपेनल
- 20. चालू वर्ष
- 21. वर्ष दृश्य
- 22. जीडब्ल्यूटी
- 23. जीडब्ल्यूटी
- 24. जीडब्ल्यूटी
- 25. जीडब्ल्यूटी
- 26. जीडब्ल्यूटी
- 27. जीडब्ल्यूटी
- 28. जीडब्ल्यूटी
- 29. जीडब्ल्यूटी
- 30. जीडब्ल्यूटी
में कुछ छोटे परिवर्तन करके संशोधित कर सकते हैं आप हमेशा अपनी खुद की कार्यक्षमता के कुछ जोड़ने के लिए विजेट का विस्तार कर सकते हैं। यह एक अच्छा फीचर अनुरोध हो सकता है। :) – markovuksanovic
मैं इससे बचने की उम्मीद कर रहा था। हम्म ... – stuff22