ورود

View Full Version : سوال: مخفی/ظاهر کردن تگdivاز طریق code-behind



h.alizadeh
دوشنبه 23 شهریور 1388, 21:20 عصر
سلام،


من می خوام در برنامه م یک تگ div رو از طریق کدنویسی در code-behind مخفی کنم.



این یه نمونه سورس ه همینطوری نوشتم:


ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
Dim script AsString = "<script language='JavaScript'> " & _
" function ShowAlert() {" & _
" document.getElementById('divEdit').style.display = 'none';" & _
" return alert('hi');}" & _
"</script>"
Page.ClientScript.RegisterClientScriptBlock(Me.Get Type(), "ShowAlert", script)
Button1.Attributes.Add("onclick", "return ShowAlert();")
EndSub




<asp:ButtonID="Button1"runat="server"Text="Button"/>
<divid="divEdit">Edit</div>


ولی اونجوری که من می خوام کار نمی کنه!
یعنی وقتی روی دکمه باتن1 کلیک می کنم یک لحظه divمخفی میشه ولی به محض اینکه alertرو okمی زنم دوباره ظاهر میشه.
حالا بر فرض من اون alert رو نزارم اونوقت دیگه اصلاً تگ divمخفی نمیشه.


لطفاً منو راهنمایی کنید.

h.alizadeh
دوشنبه 23 شهریور 1388, 21:26 عصر
راستی من در برنامه م اومدم یک کاری کردم (یک کار جالب!):

من در صفحه ام که نمایش اختصاصی یک رکورد خاص هست، محتوای رکورد رو در یک div نمایش دادم.
و یک divدیگه هم گذاشتم که برای حالت ویرایش همین رکورد خاص هست.

حالا در ابتدا من اومدم تگ divقسمت ویرایش رو مخفی کردم و با زدن دکمه ی ویرایش (دکمه یHTML هست) تگ divویرایش رو ظاهر و تگ نمایش رکورد رو مخفی کردم.

حالا بعدش وقتی کاربر کارای ویرایشش رو تموم کرد با کلیک بر روی دکمه ی ثبت (asp:button) تغییرات در بانک ذخیره میشه و بعد هم میخوام دوباره این تگ Divقسمت ویرایش رو مخفی اون تگ نمایش رو ظاهر کنم.


به نظرتون خوب هست روشم یا نه؟
ممنون

alireza_s_84
دوشنبه 23 شهریور 1388, 22:49 عصر
سلام دوست عزیز:
وقتی شما روی Button کلیک میکنید ابتدا کد مربوط به مخفی کردن div اجرا میشه.
بعد پیغام نمایش داده میشه بعد صفحه postback میشه در نتیجه دوباره صفحه لود میشه و div نمایش داده میشه.
کد جاوا اسکریپتت رو این جوری اصلاح کن:



ProtectedSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.Load
Dim script AsString = "<script language='JavaScript'> " & _
" function ShowAlert() {" & _
" document.getElementById('divEdit').style.display = 'none';" & _
" alert('hi');" & _
" return false;}" & _
"</script>"





راستی من در برنامه م اومدم یک کاری کردم (یک کار جالب!):

اصلا کار جالبی نیست چون وابسته به کلاینت هست و با غیر فعال شدن جاوا کار نمیده.
روشهای بهتری برای انجام اینکار هست
موفق باشید
alireza_s_84@yahoo.com

مهدی کرامتی
دوشنبه 23 شهریور 1388, 23:01 عصر
اصلا کار جالبی نیست چون وابسته به کلاینت هست و با غیر فعال شدن جاوا کار نمیده
بد هم نیست، چون این روزها کمتر Browser ای وجود دارد که JavaScript را پشتیبانی نکند.

h.alizadeh
چهارشنبه 25 شهریور 1388, 16:48 عصر
ممنون بابت کد و نظرتون،

راستش کدتون برای باراول کار می کنه یعنی؛

دفعه ی اول که کاربر روی ویرایش میزنه قسمت ویرایش براش نمایش داده میشه ولی بعد که روی دکمه ی ذخیره تغییرات میزنه و ثبت میشه قسمت ویرایش مخفی میشه ولی برای بار بعدی که میزنه دکمه ویرایش و قسمت ویرایش براش نمایش داده میشه دیگه هر چی تغییرات در مقدار فیلدها بده ذخیره نمیشه .ولی مخفی / نمایش میشه.

یعنی این باعث میشه کدهای دیگه ی دکمه ی ثبت تغییرات (که عملیات کار با بانک هست ) کار نکنه.


---------


روشهای بهتری برای انجام اینکار هست

کار با panelخوبه؟

Saber_Fatholahi
چهارشنبه 25 شهریور 1388, 17:37 عصر
دوست من به کنترلت runat=server ااضافه کن
و به اون id بده
حالا در طف کد نویسی میتونی اونو کنترل کنی
موفق باشی

h.alizadeh
چهارشنبه 25 شهریور 1388, 20:04 عصر
ممنون آقای فتح اللهی ولی runnat=serverهم داره گفتم که(asp:button)هست.

بهرحال تغییر دادم به پنل مشکلی ندارم با پنل، ولی اون جاواسکریپت ه اون مشکل پست5 رو داره.