开发者

Call code behind method from aspx page

i have an image tag like

<asp:Image ID="ImgProduct" runat="server"    ImageUrl='<%# FormatImageUrl("10")%>' /> 

and in code behind i have a method like

protected string FormatImageUrl(string s)
{
return "image"+s;
}

when i rum the code i am expecting that an HTML image tag with src="image10" will rend开发者_C百科er.

but nothing happens why? any clues?

i am in asp.net . not mvc


the <%# .. %> is applied only during data binding. One solution is to manually call DataBind()

Try

protected void Page_Load(object sender, EventArgs e)
{
        ImgProduct.DataBind();
}


You have to call Page.DataBind() or Control.DataBind(). Otherwise the <%# %> blocks will not be evaluated.


in the aspx page

<asp:Image ID="ImgProduct" runat="server" ondatabinding="ImgProduct_DataBinding" />

in the cs file use this

protected void Page_Load(object sender, EventArgs e)
{
    ImgProduct.DataBind();

}
protected void ImgProduct_DataBinding(object sender, EventArgs e)
{
    ImgProduct.ImageUrl = "Image pathe + name";
}


Why do all the databinding stuff just try the below.

protected void Page_Load(object sender,EventArgs e)
{
    if(!IsPostBack)
    {
        ImgProduct.ImageUrl = FormatImageUrl("10");
    }
}

protected string FormatImageUrl(string s)
{
    return "image"+s;
}

I don't understand, what difference does it make for you to databind it or write the code on code behind. Saving a few key strokes?? It would be rather very easy to also watch the Object on Codebehind rather than the Data Binding expression model

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜