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 پاسخ 328 بازدید
0 امتیاز
1 پاسخ 430 بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 318 بازدید
0 امتیاز
1 پاسخ 680 بازدید
+1 امتیاز
2 پاسخ 422 بازدید
0 امتیاز
1 پاسخ 464 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kalantari (3 امتیاز)
0 امتیاز
1 پاسخ 400 بازدید
0 امتیاز
1 پاسخ 256 بازدید
...