موضوع :
Asp.Net
بازديد :
1999 بسيار از برنامه نويسان Asp.net سوال دارند كه چگونه ميتوان به كنترل هاي Asp.net در داخل كد هاي جاوا اسكريپت دسترسي پيدا كرد و از اطلاعات آنها استفاده كرد . در اين پست ميخواهم به نحوه انجام اين كار بپردازيم .
براي اين عمل دو حالت وجود داريد : 1 - كنترل مورد نظر در داخل صفحه ساده ميباشد . كنترل مورد نظر داخل يك ContentPlaceHolder ميباشد كه از MasterPage استفاده ميكند .
بررسي حالت اول : (صفحه از مسترپيج استفاده نميكند)
در اين حالت ميتوان نام كنترل را به صورت معمولي نوشت و از آن در داخل كدهاي جاوا اسكريپت استفاده كرد.
به مثال زير توجه كنيد . در اين مثال محتواي يك TextBox با نام txtmsg خوانده شده و در يك پيغام نمايش داده ميشود ..
كد زير را داخل تگ اسكريپت مخصوص جاوااسكريپت بنويسيد : function showMsg()
{
var obj_msg=document.getElementById('txtmsg');
if(obj_msg!=null)
{
alert(obj_msg.value);
}
else
{
alert("كنترل موجود نيست");
}
}
با فراخواني اين متد پيغامي با متني كه در يك كنترل asp.net از نوع TextBox نوشته شده است نمايش پيدا ميكند .
دقت كنيد كه تابع در رويداد OnClientClick فراخاني بشود (اين رويداد در كلاينت رخ ميدهد) . نه در رويداد onclick .
بررسي حالت دوم : (كنترل داخل صفحه اي باشد كه از مسترپيج استفاده ميكند . )
روش اول : اضافه كردن عبارت ctl00_ به ابتداي نام ContentPlaceHolder و اضافه كردن نتيجه به ابتداي نام كنترل مورد نظر .
اگر نام كنترل داخل مسترپيج ContentPlaceHolder و داخل آن يك txtmsg باشد .
در مثال بالا داريم :
var obj_msg=document.getElementById('ctl00_ContentPlaceHolder_txtmsg');
روش دوم : راه بسيار ساده تر استفاده از مشخصه ClientID ميباشد :
<%= ControlName.ClientID %>
در مثال بالا داريم :
var obj_msg=document.getElementById('<%= ControlName.ClientID %>');
موفق باشيد .
تاريخ : شنبه 10 اسفند 1387
ساعت : 12:29:49 PM
نويسنده :
مهرداد قاسمي
|
نظرات