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 پاسخ 217 بازدید
0 امتیاز
1 پاسخ 325 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 194 بازدید
0 امتیاز
1 پاسخ 525 بازدید
+1 امتیاز
2 پاسخ 289 بازدید
0 امتیاز
1 پاسخ 342 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط kalantari (3 امتیاز)
0 امتیاز
1 پاسخ 291 بازدید
0 امتیاز
1 پاسخ 150 بازدید
...