Let’s say you have the control below in your ASP.NET page. This is a Telerik control which shows a fancy tile with a text and image.
<telerik:RadImageTile runat="server" ImageHeight="150px" ImageWidth="150px" ImageUrl="http://www.mysite.com/tile.png" Name="Test Tile" NavigateUrl="http://www.microsoft.com" Target="_blank">
You want to embed ImageUrl dynamically instead of hardcoding it as it’s above. You may want to use this format but it doesn’t work since there is runat="server" tag in the control.
<%= testVariable %>
In order to reference code-behind variables from your controls that have runat="server" tag, follow the steps below.
1- Create CodeExpressionBuilder class in your Solution root
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Compilation;
using System.CodeDom;
namespace Namespace_Name
{
[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : ExpressionBuilder
{
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
return new CodeSnippetExpression(entry.Expression);
}
}
}
2- Add expressionBuilders block into web.config
<compilation debug="true" targetFramework="4.5.2"> <expressionBuilders> <add expressionPrefix="Code" type="iFin_Production.CodeExpressionBuilder"/> </expressionBuilders> </compilation>
3- Refer your variable in ASP.NET page as it’s shown below
<telerik:RadImageTile runat="server" ImageHeight="150px" ImageWidth="150px" ImageUrl="<%$ Code: testVariable %>" Name="Test Tile" NavigateUrl="http://www.microsoft.com" Target="_blank">
Credits:
