2017-07-06 15 views
0

Image srcをコードの背後から更新しようとしていますが、画像が更新されません。私はImage.Controlを追加したDefault.aspxページを持っています。コントロールは、更新パネル内に配置されます。コードの静的メソッドからイメージsrcを更新するには?

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
    <div id="targetDiv" class="auto-style2" runat="server"> 
     <img id="testID" src="Images/Locations/PERRAN_SANDS.svg" runat="server" /> 
    </div> 
    </ContentTemplate> 
</asp:UpdatePanel> 

私のコードの後ろに静的メソッドがあり、そこからイメージsrcを更新しようとしています。

protected void Page_Load(object sender, EventArgs e) 
{ 
    Session["ImageControl"] = Page.FindControl("testID"); 
} 

[WebMethod] 
public static void GetLocationNames() 
{ 
    String siteName = Database.GetsiteNameforTopPlayer(); 
    UpdateImage(siteName); 
} 

public static string UpdateImage(string imgName) 
{ 
    string filename = imgName+ ".svg"; 
    string path = @"Images/Locations/" + filename; 

    System.Web.UI.HtmlControls.HtmlImage imgControl = new System.Web.UI.HtmlControls.HtmlImage(); 
    imgControl = System.Web.HttpContext.Current.Session["ImageControl"] as System.Web.UI.HtmlControls.HtmlImage; 
    imgControl.Src = path; 
    imgControl.DataBind(); 
} 

GetLocationNames()は、jquery関数から呼び出されます。私は、ブレークポイントは私のコードで設定されているおよびSrcの値が更新されますが、変更は、ウェブページに反映されていない

+1

を使用して、Page_Loadイベントで行うことができます?実際にメソッドを実行させるコードは表示されません。 – ADyson

+1

」タグをそこに置くとコードビハインドからアクセスできるようになると思います。 – Sometowngeek

+0

@ADyson:残念ですが、上記のコードでUpdateImage()を呼び出すメソッドを含めるのを忘れてしまいました。 – Sugan88

答えて

0

も、このUpdateImageメソッドが呼び出されているとき

string filename = imgName+ ".svg"; 
    string path = @"Images/Locations/" + filename; 
testID.Src=path; 
関連する問題