0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

برای پیاده سازی قابلیت clear کردن یک فرم در GWT می خواهم بصورت خودکار تمام TextBox های درون یک Panel را پیدا کنم (حتی اگر پنل ها تو در تو بود) و متن درون آنها را پاک کنم، آیا راهی وجود دارد که این کار را بصورت داینامیک انجام دهم و برای هر TextBox بصورت Hard code متد setText را فراخوانی نکنم؟

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

برای این کار باید از یک تابع بازگشتی استفاده کنید و Panel ی که تمام Widget ها و Panel های فرزند درون آن قرار دارند بعنوان Panel پدر به آن پاس کنید:

     public void clearForm(Widget formRootPanel) {
	if (formRootPanel instanceof HasWidgets) {

	    for (Iterator<Widget> iterator = ((HasWidgets) formRootPanel)
		    .iterator(); iterator.hasNext();) {

		clearForm(iterator.next());
	    }

	} else if (formRootPanel instanceof HasValue) {
	    ((HasValue) formRootPanel).setValue(null);
	}
    }

پ.ن. البته کد فوق علاوه بر TextBox، هر Widget دیگری که مقدار value می گیرد را نیز clear می کند.

سوالات مشابه

0 امتیاز
0 پاسخ 321 بازدید
0 امتیاز
1 پاسخ 425 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 313 بازدید
0 امتیاز
1 پاسخ 674 بازدید
+1 امتیاز
2 پاسخ 415 بازدید
0 امتیاز
1 پاسخ 455 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kalantari (3 امتیاز)
0 امتیاز
1 پاسخ 394 بازدید
0 امتیاز
1 پاسخ 252 بازدید
...