PDA

View Full Version : Disable/Enable کردن کنترل ASP.NET از طریق Side Server



tc1000
چهارشنبه 31 مرداد 1386, 17:33 عصر
با سلام
یکسری کنترل های دات نت دارم و میخوا با کمک Server Side بتونم مثلا وقتی یک رایدو باتون رو تیک میزنم همه یک سری از کنترل ها Disabel بشن و همچنین برعکس

nazaninam
چهارشنبه 31 مرداد 1386, 18:53 عصر
سوالت واضح نیست در ضمن مشکل کجاست؟

tc1000
چهارشنبه 31 مرداد 1386, 19:08 عصر
شما قبلا در مورد Server Side هم به من کمک کردید
من یک فرم دارم که رادیو باتون با 2 ایتم داره و چندین Textbox
حالا میخوان وقتی که ایتم اولی Radio باتون ر زدم چندتا از Textbox ها Disable بشن و چند تای دیگه Enable و همچنین ب عکس

tc1000
چهارشنبه 31 مرداد 1386, 19:09 عصر
در ضمن یک موضوع دیگه اینکه تمام کنترل ها از نوع دات نت هستند

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

nazaninam
چهارشنبه 31 مرداد 1386, 20:02 عصر
ببینید ابتدا خاصیت AutoPostBack کنترل RadioButtonList را Enable بفرمایید.
در رویداد selected index Change این کنترل یک شرط بگذارید : اگر مثلا گزینه 1 انتخاب شده بود مثلا می نویسید :
Textbox1.Enable=False و Textbox2.Enable=True و الی آخر....

tc1000
پنج شنبه 01 شهریور 1386, 01:59 صبح
خوب این درست ولی این میره صفحه رو دوباره لود میکنه من میخوام مثل جاوا اسکریپت درجا کنترل ها تغییر وضعیت بدن

nazaninam
پنج شنبه 01 شهریور 1386, 10:57 صبح
دوست عزیز اینجا انجمن Asp.NET هست ! نه جاوا اسکریپت
برای استفاده از جاوا اسکریپت از کد جاوا اسکریپت را بنویسید و بوسیله متد Attribute به کنترل سمت سرورتون نسبت بدید !
کمی جستجو درسایت بفرمایید در مورد این متد زیاد صحبت شده

tc1000
پنج شنبه 01 شهریور 1386, 11:25 صبح
دقیقا همین طوره
ولی مشکل من با کنترلهای دانت هستند وقتی از کنترلradiobutton دانت نس استفاده میکنم دیگه نمی تونم با جاوا اسکریپت کنترلش کنم.
برای همین اینجا مطرح کردم

سار
پنج شنبه 01 شهریور 1386, 12:20 عصر
دقیقا همین طوره
ولی مشکل من با کنترلهای دانت هستند وقتی از کنترلradiobutton دانت نس استفاده میکنم دیگه نمی تونم با جاوا اسکریپت کنترلش کنم.
برای همین اینجا مطرح کردم

RadioButtonList وقتی که رندر میشه و تبدیل به HTML میشه هر کدومشون جدا تبدیل به یک RadioButton میشن که تقریبن ربطی هم به هم ندارن. کار ساده این هست که ار Dropdown استفاده کنی ولی اگر به استفاده از RadioButtonList اسرار داری باید یک سری کد JavaScript بنویسی که به شکل آرایه اونها رو بخونه و .... .

البته اگر از RadioButton تکی استفده کنی دیکه همچین مشکلی نداری. این فقط در زمان استفاده از RadioButtonList هست.

m.hamidreza
پنج شنبه 01 شهریور 1386, 14:06 عصر
ولی مشکل من با کنترلهای دانت هستند وقتی از کنترلradiobutton دانت نس استفاده میکنم دیگه نمی تونم با جاوا اسکریپت کنترلش کنم.

چرا عزیز برادر ؟! مگه چه جوری کنترل میکنی ؟ این کد رو بنگر :




rdbtn1.Attributes.Add("onclick","document.getElementById('txt').style.visibility='h idden'");




txt میشه id کنترلی که میخوای visible یا invisible ش کنی مثه Textbox .
rbtn1 هم میشه radiobutton ت . فقط این کد رو توی Page_Load قرار بده ... بسته به نیازت تغییراتتو بده ولی ساختارش اینه . . . :چشمک:

tc1000
پنج شنبه 01 شهریور 1386, 17:01 عصر
چرا onlick برای کنترلهای .net کار نمیکنه
این کد رو ببینید

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:RadioButtonList id="rbSelection" onclick="abc(this);" runat="server">
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox ID="textbox" runat="server"></asp:TextBox>

<script>
function abc(rad)
{
switch (rad.value){
case "1":
var e=document.getElementById("dropdownlist");
e.style.disabled =true;
var t=document.getElementById("textbox");
t.style.disabled ="false";

break;
case "2" :
var e=document.getElementById("dropdownlist");
e.style.disabled ="false";

var t=document.getElementById("textbox");
t.style.disabled ="true";
break;

}
}
</script>
</div>
</form>
</body>
</html>

nazaninam
پنج شنبه 01 شهریور 1386, 19:21 عصر
خوب معلومه کنترل Runat=Server هست ! شما انتظار دارید دنبال یک متد سمت کلاینت بگرده؟
این کار که شما میخواهید انجام بدید خیلی سادست نمی دونم مشکلتون چیه؟
راه ساده اینه که به تعدادی که نیاز دارید RaddioButton بگذارید و با هم Group کنید و بعد کد نویسی سمت کلاینت را انجام بدید !
مثل این نمونه :

طرف سرور :




AddFile_Rdb_File.Attributes.Add("onclick", "radiobutton('file','link')");
AddFile_Rdb_Link.Attributes.Add("onclick", "radiobutton('link','file')");



طرف کلاینت :




<script>
function radiobutton(TDOn,TDOff)
{
document.getElementById(TDOn).style.display='block ';
document.getElementById(TDOff).style.display='none ';
}
</script>



کدی که من نوشتم برای یک Td عمل می کنه ! با چند تا تغییر ساده می تونید برای Texbox استفاده کنید
موفق باشید

tc1000
پنج شنبه 01 شهریور 1386, 23:44 عصر
مهندس دقیقا مشکل من همینه که شما گفتید میشه در مورد این کد یه خورده توضیح بدید.
ممنون میشم

twelve
چهارشنبه 17 بهمن 1386, 11:51 صبح
من هم چنین مشکلی دارم البته برای باتن ، میخوام که وقتی باتن کلیک شد تابع جاوا اسکریپت فعال بشه ، این اتفاق میفه اما از کلیک دوم به بعد ، بار اول که کلیک میشه انگار نه انگار Attribute واسه خودش کسیه!