PDA

View Full Version : Java Script و DataList



A.S.Roma
یک شنبه 08 آذر 1388, 11:06 صبح
با سلام

من خیلی جاوااسکریپت نمی دونم .

یک کد نوشتم برای یک المنت کار می کنه اما وقتی المنتها تکرار میشن ( توسط دیتالیست ) دیگه کار نمی کنه !
function changeImage(img_name,img_src){
document[img_name].src=img_src
}

لطفا" کمکم کنید که به ازای تک تک المنتهای دیتالیست یه همچین کدی اجرا بشه ( سورس یک Img عوض بشه . )

Chabok
یک شنبه 08 آذر 1388, 12:15 عصر
با سلام

در ابتدا کد خود را بدین صورت تصحیح کنید :

function changeImage(img_name,img_src){
document.getElementById(img_name).src=img_src
}نحوه ایجاد ID برای تصاویر نیز مهم است .

کد نمونه DataList و استفاده از این کد را نیز قرار دهید .

A.S.Roma
یک شنبه 08 آذر 1388, 12:37 عصر
ممنون از پاسختون .

قبل از پست شما من بدین شکل نوشته بودم :
<img name="img" src="Images/Normal.jpg" onmouseover="changeImage('img','Images/Hover.jpg')" />

که این کار باعث میشد به اضای هر المنت تولید شده توسط دیتالیست name همگی اونها یکی باشد.
حالا می خوام اینجوری بنویسم اما خطا می گیره .
راستش تاحالا Eval رو به ID نسبت ندادم .
<asp:Image ID='<%"img"+Eval("Id") %>' runat="server" ImageUrl="~/Images/Normal.jpg" alt=""
/>
کد جاوا هم برای onmouseover به صورت داینامیک call خواهم کرد.

Chabok
یک شنبه 08 آذر 1388, 12:53 عصر
هنگام استفاده از کنترل های سرور ساید مانند اینجا که از Image استفاده کرده اید ID شما سمت کلاینت بصورت خودکار تولید خواهد شد .
شما فقط کافیست یک ID بدهید مثلاً : MyImg
سمت کلاینت در صورت تعدد این کنترل مثلاً بدین صورت تولید می شود : MyImg_cntrl1 و MyImg_cntrl0

این ID که سمت کلاینت تولید می شود توسط Control.ClientID قابل دسترس است .

در مورد سوال شما می توان کار دیگری انجام داد :


<img src="Images/Normal.jpg" onmouseover="changeImage(this,'Images/Hover.jpg')" />در این کد ID و Name لازم نیست . لازم هم نیست Image سرور ساید باشه .
پارامتر اول تابع خود شی تصویر را پاس می دهد .

تابع را بصورت زیر اصلاح کنید .


function changeImage(img,img_src){
img.src=img_src
}

البته در رویداد onmouseout هم باید به همین صورت تصویر را به حالت اول برگردانید .