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 پاسخ 334 بازدید
0 امتیاز
1 پاسخ 434 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 325 بازدید
0 امتیاز
1 پاسخ 687 بازدید
+1 امتیاز
2 پاسخ 433 بازدید
0 امتیاز
1 پاسخ 469 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kalantari (3 امتیاز)
0 امتیاز
1 پاسخ 405 بازدید
0 امتیاز
1 پاسخ 260 بازدید
...