2012-11-12 169 views
0

我想从javascript设置asp图像元素src属性,但是url属性未设置。从javascript设置asp图像src属性

function slideshow() { 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "/RollingScreen.aspx/GetNextImage", 
    dataType: "json", 
    data: "{}", 
    success: function (data) { 
     //this changes the image on the web page 
     $('#imgSlideShow').attr("src","~/1.png"); 
     $("#txt1").val(data.d); 
     //fires another sleep/image cycle 
     setTimeout(slideshow,5000); 
    }, 
    error: function (result) { 
     alert(result.message); 
    } 
    }); 
} 

$(document).ready(function() { 
    //Kicks the slideshow 
    slideshow(); 
}); 

我的aspx图像元素是

<asp:Image ID="imgSlideShow" runat="server" Height="300px" Width="600px" ImageAlign="Middle" ImageUrl="~/1.png"/>.... 

谁能帮我...

+2

图像ID在呈现时不是imgSlideShow。查看源代码或检查元素以查看ID是什么,或者使用CssClass为它提供一个类名,您可以使用它来引用它。此外,你不能在JavaScript中使用〜只在.Net – Archer

回答

2

你的错误是,你要使用你在asp.net已设置ID。但runat =“server”元素使用不同的ID呈现。类似于Content1_Content2_imgSlideShow。您可以在服务器端使用imgSlideShow.ClientID,并使用$('#' + jsVariableWithClientID)。但我更喜欢使用一些独特的类(没有问题,通过客户端ID JS):

<asp:Image ID="imgSlideShow" CssClass="imgSlideShow" runat="server" Height="300px" Width="600px" ImageAlign="Middle" ImageUrl="~/1.png"/>

,比JS,使用类选择:

$('.imgSlideShow').attr("src","/1.png"); 

另一个问题是,JS做不知道~ - 这只是asp.net功能。并且你应该为src指定图像URL,如下所示:"/1.png"(假设它位于根目录中)

+0

感谢FAngel ....问题解决了....我用/1.png代替〜/ 1.png ...并且它工作正常罚款.....感谢很多....你节省了我的时间.... – JItendra

+0

+1为消除罪魁祸首〜 – Adil