Asp.net User Control or Custom control Property doesnt accept inlineasp.net constract <%= %> is there a workaround?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • AleXmanFree

    Asp.net User Control or Custom control Property doesnt accept inlineasp.net constract <%= %> is there a workaround?

    Hi , I have got problem with passing my inline based value to y user
    control (or custom control, no matter which one I use, I have tried
    both to make sure it doesnt matter) .
    So say I have property called ImagePath and i want to pass my value
    through asp.net specific inline cunstruction:
    <uc:MyControl runat=server id="someId" ImagePath="<%=
    Request.Applica tionPath %>/App_Themes/<%= Page.Theme %>/Images/
    ball_.png" />,

    problem that in my property I get value exactly word for word:<%=
    Request.Applica tionPath %>/App_Themes/<%= Page.Theme %>/Images/
    ball_.png , but i Should get it like:
    /WebSiteRoot/App_Themes/Green/Images/ball_.png.

    For example if I use simple img html tag i works:
    <img src="<%= Request.Applica tionPath %>/App_Themes/<%= Page.Theme %>/
    Images/ball_.png" />
    But if i add runat=server it brokes and i dont see any image coz the
    path of image already messy string with <%= and so on.

    I tried a lot of attributes to my ImagePath that found in web posts to
    let it work (i.e.: [Bindable(true)],[Category("Data" )],
    [Browsable(true)] and many more) but no result.



    Please let me know if you can resolve this interesting trick somehow?
  • HillBilly

    #2
    Re: Asp.net User Control or Custom control Property doesnt accept inline asp.net constract &lt;%= %&gt; is there a workaround?

    I was taught to troubleshoot using isolation: test one thing at a time.

    So isolate your expressions you are attempting to bind to the page. I also
    bring to your attention the use of the root path operator (~) so useful to
    resolve paths. I would then isolate the use of Request.Applica tionPath and
    get that part of your path correct.

    Some parts of your path would look like "~/Images/ball_.png" for example and
    I don't even think App_Theme is known to anything but the compiler but I
    could be wrong about that as I don't think we can bind the Theme to the page
    using an expression which may be why using Server controls vs HTML controls
    appears to produce results.

    "AleXmanFre e" <alexmanfree@gm ail.comwrote in message
    news:74820c4f-d2d6-4742-8d0d-15eb1fd5dea3@z7 2g2000hsb.googl egroups.com...
    Hi , I have got problem with passing my inline based value to y user
    control (or custom control, no matter which one I use, I have tried
    both to make sure it doesnt matter) .
    So say I have property called ImagePath and i want to pass my value
    through asp.net specific inline cunstruction:
    <uc:MyControl runat=server id="someId" ImagePath="<%=
    Request.Applica tionPath %>/App_Themes/<%= Page.Theme %>/Images/
    ball_.png" />,
    >
    problem that in my property I get value exactly word for word:<%=
    Request.Applica tionPath %>/App_Themes/<%= Page.Theme %>/Images/
    ball_.png , but i Should get it like:
    /WebSiteRoot/App_Themes/Green/Images/ball_.png.
    >
    For example if I use simple img html tag i works:
    <img src="<%= Request.Applica tionPath %>/App_Themes/<%= Page.Theme %>/
    Images/ball_.png" />
    But if i add runat=server it brokes and i dont see any image coz the
    path of image already messy string with <%= and so on.
    >
    I tried a lot of attributes to my ImagePath that found in web posts to
    let it work (i.e.: [Bindable(true)],[Category("Data" )],
    [Browsable(true)] and many more) but no result.
    >
    >
    >
    Please let me know if you can resolve this interesting trick somehow?

    Comment

    • AleXmanFree

      #3
      Re: Asp.net User Control or Custom control Property doesnt acceptinline asp.net constract &lt;%= %&gt; is there a workaround?

      Finally I found a good solution for this case.
      Here is very good post of Dave Reed:



      The short steps to achieve similar result are:

      1) Create a class which inherits ExpressionBuild er:

      using System;
      using System.Collecti ons.Generic;
      using System.Text;
      using System.CodeDom;
      using System.Web.Comp ilation;
      using System.Web.UI;

      namespace Helper.Configur ators
      {
      [ExpressionPrefi x("InlineCode ")]
      public class CodeExpressionB uilder : ExpressionBuild er
      {
      public override CodeExpression GetCodeExpressi on(BoundPropert yEntry
      entry, object parsedData, ExpressionBuild erContext context)
      {
      return new CodeSnippetExpr ession(entry.Ex pression);
      }
      }
      }

      2) register the newly created class in Web.Config:

      <expressionBuil ders>
      <add expressionPrefi x="InlineCode "
      type="Helper.Co nfigurators.Cod eExpressionBuil der"/>
      </expressionBuild ers>

      (it must be putted inside <configuration> )

      3) and us it:

      CategoryImage=' <%$ InlineCode: Request.Applica tionPath+ "/App_Themes/"
      +Page.Theme+ "/Images/ball_.png" %>'


      Enjoy.

      Comment

      • Hillbilly

        #4
        Re: Asp.net User Control or Custom control Property doesnt accept inline asp.net constract &lt;%= %&gt; is there a workaround?

        I really appreciate your commitment to come back to put this news article
        into perspective. I needed more insight into the use of the
        ExpressionBuild er class myself. Thanks again...

        "AleXmanFre e" <alexmanfree@gm ail.comwrote in message
        news:af121179-4f3f-48ec-8ba2-2455b3c12cd7@i7 6g2000hsf.googl egroups.com...
        Finally I found a good solution for this case.
        Here is very good post of Dave Reed:

        >
        >
        The short steps to achieve similar result are:
        >
        1) Create a class which inherits ExpressionBuild er:
        >
        using System;
        using System.Collecti ons.Generic;
        using System.Text;
        using System.CodeDom;
        using System.Web.Comp ilation;
        using System.Web.UI;
        >
        namespace Helper.Configur ators
        {
        [ExpressionPrefi x("InlineCode ")]
        public class CodeExpressionB uilder : ExpressionBuild er
        {
        public override CodeExpression GetCodeExpressi on(BoundPropert yEntry
        entry, object parsedData, ExpressionBuild erContext context)
        {
        return new CodeSnippetExpr ession(entry.Ex pression);
        }
        }
        }
        >
        2) register the newly created class in Web.Config:
        >
        <expressionBuil ders>
        <add expressionPrefi x="InlineCode "
        type="Helper.Co nfigurators.Cod eExpressionBuil der"/>
        </expressionBuild ers>
        >
        (it must be putted inside <configuration> )
        >
        3) and us it:
        >
        CategoryImage=' <%$ InlineCode: Request.Applica tionPath+ "/App_Themes/"
        +Page.Theme+ "/Images/ball_.png" %>'
        >
        >
        Enjoy.

        Comment

        Working...