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 پاسخ 229 بازدید
0 امتیاز
1 پاسخ 333 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 204 بازدید
0 امتیاز
1 پاسخ 532 بازدید
+1 امتیاز
2 پاسخ 326 بازدید
0 امتیاز
1 پاسخ 354 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط kalantari (3 امتیاز)
0 امتیاز
1 پاسخ 302 بازدید
0 امتیاز
1 پاسخ 160 بازدید
...