PDA

View Full Version : تغيير وضعيت كنترل ASP.NET با استفاده از جاوا اسكريپت



yekta64
دوشنبه 17 اسفند 1388, 13:06 عصر
سلام دوستان
چطور ميشه با استفاده از جاوا اسكريپت visible يه كنترل asp.net مثل يه label رو true يا false كرد؟؟؟؟
مرسي

mehdi.mousavi
دوشنبه 17 اسفند 1388, 13:34 عصر
سلام دوستان چطور ميشه با استفاده از جاوا اسكريپت visible يه كنترل ASP.NET مثل يه label رو true يا false كرد؟؟؟؟ مرسي

سلام.
ابتدا المنت مورد نظر رو توی DOM Document بدست بیارید (فرضا با دستور getElementById) و سپس visibility اونو برابر hidden یا visible یا inherit قرار بدید:

document.getElementById('whatever').style.visibili ty = 'hidden';

موفق باشید.

yekta64
دوشنبه 17 اسفند 1388, 14:05 عصر
سلام.
ابتدا المنت مورد نظر رو توی DOM Document بدست بیارید (فرضا با دستور getElementById) و سپس visibility اونو برابر hidden یا visible یا inherit قرار بدید:

document.getElementById('whatever').style.visibili ty = 'hidden';

موفق باشید.

مرسي دوست عزيز
ببينيد دكمه ي كه من مي خوام با فشردن آن يه visibel مربوط به يك label ،True بشه كنتري asp.net هستش و از طرفي در زمان اوليه اجرا visibel مربوط به label، false هستش حالا چطور عمل كنم كه با فشردن دكمه label نمايش داده بشه؟؟؟؟
مرسي

mehdi.mousavi
دوشنبه 17 اسفند 1388, 14:54 عصر
مرسي دوست عزيز
ببينيد دكمه ي كه من مي خوام با فشردن آن يه visibel مربوط به يك label ،True بشه كنتري ASP.NET هستش و از طرفي در زمان اوليه اجرا visibel مربوط به label، false هستش حالا چطور عمل كنم كه با فشردن دكمه label نمايش داده بشه؟؟؟؟
مرسي

سلام.
بسیار خوب. برای این کار کنترل Button شما در ASP.NET یک Property داره تحت عنوان OnClientClick. می تونید این Property رو به نام تابع javascript ای که دوست دارید سمت Client (پس از Click شدن Button) فراخوانی بشه، assign کنید. فرضا onMyButtonClicked... سپس تابع JavaScript ای بنویسید (با نام مزبور) و در این تابع، همونطور که در پست قبلی گفتم، به Element مورد نظر (در مثال شما Label) در DOM Doc. برسید، و وضعیت Visibility دکمه رو تغییر بدید.

موفق باشید.

yekta64
دوشنبه 17 اسفند 1388, 21:12 عصر
سلام.
بسیار خوب. برای این کار کنترل Button شما در ASP.NET یک Property داره تحت عنوان OnClientClick. می تونید این Property رو به نام تابع javascript ای که دوست دارید سمت Client (پس از Click شدن Button) فراخوانی بشه، assign کنید. فرضا onMyButtonClicked... سپس تابع JavaScript ای بنویسید (با نام مزبور) و در این تابع، همونطور که در پست قبلی گفتم، به Element مورد نظر (در مثال شما Label) در DOM Doc. برسید، و وضعیت Visibility دکمه رو تغییر بدید.

موفق باشید.

مرسی
راستش من قبل از اینکه این تاپیک رو بزنم همین کار رو کردم منتها جواب نگرفتم میشه لطف کنید یه نمونه کد بذارید تا من با کد خودم مقایسه کنم؟؟؟
مرسی

mehdi.mousavi
دوشنبه 17 اسفند 1388, 21:55 عصر
مرسی راستش من قبل از اینکه این تاپیک رو بزنم همین کار رو کردم منتها جواب نگرفتم میشه لطف کنید یه نمونه کد بذارید تا من با کد خودم مقایسه کنم؟؟؟
مرسی

خواهش میکنم. شما لطفا کدتون رو بذارید تا من ببینم مشکلش چی هستش.

Milad Mohseny
دوشنبه 17 اسفند 1388, 22:20 عصر
اينم نمونه كد:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript">
function chMode() {
var e = document.getElementById("Label1");
e.style.display = (e.style.display == '') ? 'none' : '';
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="chMode();"/>
<input type="button" onclick="chMode();" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>

yekta64
سه شنبه 18 اسفند 1388, 08:27 صبح
اينم نمونه كد:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript">
function chMode() {
var e = document.getElementById("Label1");
e.style.display = (e.style.display == '') ? 'none' : '';
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" UseSubmitBehavior="false" OnClientClick="chMode();"/>
<input type="button" onclick="chMode();" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>

مرسي
ولي مشكل من اينه كه مي خوام label در حالت اوليه false باشه و من با كد جاوا اون رو true كنم ؟؟؟؟؟

mehdi.mousavi
سه شنبه 18 اسفند 1388, 10:53 صبح
مرسي ولي مشكل من اينه كه مي خوام label در حالت اوليه false باشه و من با كد جاوا اون رو true كنم ؟؟؟؟؟

بسیار خوب. ابتدا به این نکته دقت کنید که Visible Property سمت سرور، معادل visibility style سمت Client نیست. این دو رو با هم اشتباه نگیرید. اگر Visible یک کنترل سمت سرور رو false بذارید، یعنی اینکه اون کنترل نباید Render بشه و اصلا HTML ای برای اون کنترل تولید نمیشه.

شما برای اینکار، میتونید سمت Server بصورت Declarative، برای کنترل Label خودتون style رو بدین شکل تعیین کنید:

<asp:Label Style="visibility:hidden;" ID="lblWhatever" runat="server"></asp:Label>

سپس سمت client، در هنگام لزوم و بروشی که ذکر شد، Visibility این Label رو تغییر بدید.

موفق باشید.

yekta64
دوشنبه 24 اسفند 1388, 14:13 عصر
بسیار خوب. ابتدا به این نکته دقت کنید که Visible Property سمت سرور، معادل visibility style سمت Client نیست. این دو رو با هم اشتباه نگیرید. اگر Visible یک کنترل سمت سرور رو false بذارید، یعنی اینکه اون کنترل نباید Render بشه و اصلا HTML ای برای اون کنترل تولید نمیشه.

شما برای اینکار، میتونید سمت Server بصورت Declarative، برای کنترل Label خودتون style رو بدین شکل تعیین کنید:

<asp:Label Style="visibility:hidden;" ID="lblWhatever" runat="server"></asp:Label>

سپس سمت client، در هنگام لزوم و بروشی که ذکر شد، Visibility این Label رو تغییر بدید.

موفق باشید.

سلام مرسي دوست عزيز
يه سوال با توجه به نكاتي كه شما گفتيد مشكل كد من چي هستش كه visible مربوط به label1رو True نميكنه؟؟؟
مرسي




<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Sample</title>

<script language="javascript" type="text/javascript">
function dd() {
document.getElementById('Label1').style.visibility = "visible";
}

</script>

</head>
<body >
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Style="visibility:hidden;" Text="ddddd" ></asp:Label>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="dd()" />
</form>
</body>
</html>

Milad Mohseny
دوشنبه 24 اسفند 1388, 21:25 عصر
يه سوال با توجه به نكاتي كه شما گفتيد مشكل كد من چي هستش كه visible مربوط به label1رو True نميكنه؟؟؟
اتفاقا كنترلت visible ميشه منتها چون PostBack اتفاق ميافته فك ميكني visible نميشه. با firefox تست كن ميبيني سريع visible ميشه و بعئ postback اتفاق ميافته. اگه ميخواهي Postback نشه كليد زير رو به جاي كليد خودت بزار:
<input type="button" value="Button" onclick="dd();" />

yekta64
سه شنبه 25 اسفند 1388, 08:10 صبح
اتفاقا كنترلت visible ميشه منتها چون PostBack اتفاق ميافته فك ميكني visible نميشه. با firefox تست كن ميبيني سريع visible ميشه و بعئ postback اتفاق ميافته. اگه ميخواهي Postback نشه كليد زير رو به جاي كليد خودت بزار:
<input type="button" value="Button" onclick="dd();" />

مرسي
ببين دوست من label در حالت اوليه invisible هستش و با كد من بايد visible بشه
شما درست مي گيد ولي من توي كد دكمه ام يه سري كد asp.net هم دارم كه بايد در رويداد onclick دكمه قر ار بدم به همين خاطر كد جاوا رو در رويداد onclientclick قرار دادم به نظر شما با توضيحات من راهي هست كه بشه از از postback جلوگيري كرد؟؟؟؟؟؟

Milad Mohseny
سه شنبه 25 اسفند 1388, 08:42 صبح
یه راه سادش اینه که از کد زیر سمت سرور و تو رویداد کلیک کلیدت استفاده کنی. دیگه تابع جاوا اسکریپتی dd رو هم بهش احتیاج نداری.
تست کن:
Label1.Attributes.Add("style", "visibility:visible");

yekta64
سه شنبه 25 اسفند 1388, 09:06 صبح
یه راه سادش اینه که از کد زیر سمت سرور و تو رویداد کلیک کلیدت استفاده کنی. دیگه تابع جاوا اسکریپتی dd رو هم بهش احتیاج نداری.
تست کن:
Label1.Attributes.Add("style", "visibility:visible");

مرسي دوست عزيز ميشه يه مقدار در مورد Attributes توضيح بديد ؟؟؟؟
ممنون

Milad Mohseny
سه شنبه 25 اسفند 1388, 09:30 صبح
ميشه يه مقدار در مورد Attributes توضيح بديد ؟؟؟؟
خیلی سادش میشه این که میتونی با Attributes هر شی، خصوصات htmlی اون شی رو تخصیص و تغییر بدی

yekta64
سه شنبه 25 اسفند 1388, 14:04 عصر
یه راه سادش اینه که از کد زیر سمت سرور و تو رویداد کلیک کلیدت استفاده کنی. دیگه تابع جاوا اسکریپتی dd رو هم بهش احتیاج نداری.
تست کن:
Label1.Attributes.Add("style", "visibility:visible");

دوست عزيز
علت اينكه من از جاوا استفاده كردم اين بود كه صفحه روي هاست poskback نشه ولي با كدي كه شما گفتيد همچنان مشكل postback برقرار هستش

Milad Mohseny
سه شنبه 25 اسفند 1388, 14:37 عصر
دوست عزيز
علت اينكه من از جاوا استفاده كردم اين بود كه صفحه روي هاست poskback نشه ولي با كدي كه شما گفتيد همچنان مشكل postback برقرار هستش

تو پست 12 گفتی میخواهی PostBack اتفاق بیافته

شما درست مي گيد ولي من توي كد دكمه ام يه سري كد ASP.NET هم دارم كه بايد در رويداد onclick

من الان افتادم تو حلقه بینهایت. :گیج:
بالاخره میخواهی postback بشه یا نشه؟

yekta64
یک شنبه 08 فروردین 1389, 13:25 عصر
تو پست 12 گفتی میخواهی PostBack اتفاق بیافته


من الان افتادم تو حلقه بینهایت. :گیج:
بالاخره میخواهی postback بشه یا نشه؟

سلام
ببخش دوست عزيز بايد زودتر از جواب ميدادم
راستش من يه دكمه دارم كه يه فشردن اون دكمه بايد يه سري اطلاعات رو در ديتابيس ذخيره كنم و همزمان با ذخيره اطلاعات يه label هم بايد visible مربوط به اون true بشه مشكل اينجاست كه اين كد مربوط به visible شدن رو مي خوام با كد جاوا اسكريپت بنويسم كه postback نشه اين كار رو بايد به چه صورت انجام بدم؟

exlord
یک شنبه 08 فروردین 1389, 13:50 عصر
میتونی فرمتو بندازی توی یه updatepanel در ضمن وقتی که داری از دکمه asp اسفاده میکنی... برا رویداد دوم چه از javascript استفاده بکنی و چه نکنی postback اتفاق میفته.....

nimadows
سه شنبه 11 تیر 1392, 12:40 عصر
دوستان چرا هرجا اين سؤال مطرح ميشه يجور ديگه جواب ميدن

من ميخوام visible = false تبديل به visible=true بشه

<div runat="server" visible="false" ></div>


با استفاده از jquery ياjava script
دوستان کدها ايي وجود داره که به راحتی display:none به disblay:block تغيير ميده اما


هيچ کدی مثله اينکه نيست که visible:false رو به visible:true تغییر بده
درسته ؟؟

nimadows
سه شنبه 11 تیر 1392, 12:46 عصر
يعنی با زدنه يه کليک visible="false" اين div به visible="true" تغيير پيدا کنه