Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. ASP.NET
  4. DataBinder.Eval usage in Href [modified]

DataBinder.Eval usage in Href [modified]

Scheduled Pinned Locked Moved ASP.NET
helpcsharpasp-netdatabasevisual-studio
16 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J J4amieC

    You cant mix databainding expressions and constant text in an attribute value, you have to concatenate it all in the databinding expression:

    Click Here

    NB: Pay special attention to the usage of single & double quotes in the above example.

    modified on Wednesday, January 6, 2010 4:24 AM

    T Offline
    T Offline
    thenewbee
    wrote on last edited by
    #6

    Sorry i misplaced the code Here is my full code

    <asp:datagrid style="Z-INDEX: 101; POSITION: absolute; TOP: 136px; LEFT: 192px" id="DataGrid1"
    runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="test">
    <ItemTemplate>
    <a href="www.yahoo.com?id=12" runat="server" id="h1">click</a>
    <asp:TextBox runat="server" ID="Textbox1" NAME="Textbox1" Visible="False"></asp:TextBox>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:ButtonColumn Text="Button" HeaderText="edit" CommandName="ed"></asp:ButtonColumn>
    <asp:TemplateColumn HeaderText="Invoice No">
    <ItemTemplate>
    <a id ="h2" runat="server" href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid>

    Iam using VS 2003 When i changed to Design View i got the following error Could not open in Design view. Quote values differently inside a '<% ..."value"... %>' block.

    J 1 Reply Last reply
    0
    • A Abhishek Sur

      I think runat="server" is the culprit. Just remove it if you dont need. If you want runat="server" you can assign the href from the Server Side. I mean If it is inside an asp:Repeater to it inside ItemDataBound event.

      Abhishek Sur **Don't forget to click "Good Answer" if you like this Solution.


      My Latest Articles-->** Windows7 API Code Pack
      Simplify Code Using NDepend
      Basics of Bing Search API using .NET

      T Offline
      T Offline
      thenewbee
      wrote on last edited by
      #7

      <asp:datagrid style="Z-INDEX: 101; POSITION: absolute; TOP: 136px; LEFT: 192px" id="DataGrid1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateColumn HeaderText="test"> <ItemTemplate> <a href="www.yahoo.com?id=12" runat="server" id="h1">click</a> <asp:TextBox runat="server" ID="Textbox1" NAME="Textbox1" Visible="False"></asp:TextBox> </ItemTemplate> </asp:TemplateColumn> <asp:ButtonColumn Text="Button" HeaderText="edit" CommandName="ed"></asp:ButtonColumn> <asp:TemplateColumn HeaderText="Invoice No"> <ItemTemplate> <a id ="h2" runat="server" href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:datagrid> Iam using VS 2003 When i changed to Design View i got the following error Could not open in Design view. Quote values differently inside a '<% ..."value"... %>' block.

      1 Reply Last reply
      0
      • T thenewbee

        Sorry i misplaced the code Here is my full code

        <asp:datagrid style="Z-INDEX: 101; POSITION: absolute; TOP: 136px; LEFT: 192px" id="DataGrid1"
        runat="server" AutoGenerateColumns="False">
        <Columns>
        <asp:TemplateColumn HeaderText="test">
        <ItemTemplate>
        <a href="www.yahoo.com?id=12" runat="server" id="h1">click</a>
        <asp:TextBox runat="server" ID="Textbox1" NAME="Textbox1" Visible="False"></asp:TextBox>
        </ItemTemplate>
        </asp:TemplateColumn>
        <asp:ButtonColumn Text="Button" HeaderText="edit" CommandName="ed"></asp:ButtonColumn>
        <asp:TemplateColumn HeaderText="Invoice No">
        <ItemTemplate>
        <a id ="h2" runat="server" href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a>
        </ItemTemplate>
        </asp:TemplateColumn>
        </Columns>
        </asp:datagrid>

        Iam using VS 2003 When i changed to Design View i got the following error Could not open in Design view. Quote values differently inside a '<% ..."value"... %>' block.

        J Offline
        J Offline
        J4amieC
        wrote on last edited by
        #8

        Did you actually read my answer? :wtf:

        T 1 Reply Last reply
        0
        • A Abhishek Sur

          I think runat="server" is the culprit. Just remove it if you dont need. If you want runat="server" you can assign the href from the Server Side. I mean If it is inside an asp:Repeater to it inside ItemDataBound event.

          Abhishek Sur **Don't forget to click "Good Answer" if you like this Solution.


          My Latest Articles-->** Windows7 API Code Pack
          Simplify Code Using NDepend
          Basics of Bing Search API using .NET

          J Offline
          J Offline
          J4amieC
          wrote on last edited by
          #9

          Abhishek Sur wrote:

          I think runat="server" is the culprit

          No, really its not!

          Abhishek Sur wrote:

          you can assign the href from the Server Side. I mean If it is inside an asp:Repeater to it inside ItemDataBound event.

          Why? Thats just 10x more complicated than expressing it as an attribute.

          A 1 Reply Last reply
          0
          • J J4amieC

            Abhishek Sur wrote:

            I think runat="server" is the culprit

            No, really its not!

            Abhishek Sur wrote:

            you can assign the href from the Server Side. I mean If it is inside an asp:Repeater to it inside ItemDataBound event.

            Why? Thats just 10x more complicated than expressing it as an attribute.

            A Offline
            A Offline
            Abhishek Sur
            wrote on last edited by
            #10

            J4amieC wrote:

            Why? Thats just 10x more complicated than expressing it as an attribute.

            Yes.. Event if it is complicated, but ASP.NET is meant to deal with this events. It is better to handle server controls in the server and client control in the designer. I generally dont mix both in designer. Well, its upon the choice though.. ;)

            Abhishek Sur **Don't forget to click "Good Answer" if you like this Solution.


            My Latest Articles-->** Windows7 API Code Pack
            Simplify Code Using NDepend
            Basics of Bing Search API using .NET

            J 1 Reply Last reply
            0
            • A Abhishek Sur

              J4amieC wrote:

              Why? Thats just 10x more complicated than expressing it as an attribute.

              Yes.. Event if it is complicated, but ASP.NET is meant to deal with this events. It is better to handle server controls in the server and client control in the designer. I generally dont mix both in designer. Well, its upon the choice though.. ;)

              Abhishek Sur **Don't forget to click "Good Answer" if you like this Solution.


              My Latest Articles-->** Windows7 API Code Pack
              Simplify Code Using NDepend
              Basics of Bing Search API using .NET

              J Offline
              J Offline
              J4amieC
              wrote on last edited by
              #11

              Abhishek Sur wrote:

              It is better to handle server controls in the server and client control in the designer

              But the markup is also dealt with by the server:confused:

              A 1 Reply Last reply
              0
              • J J4amieC

                Did you actually read my answer? :wtf:

                T Offline
                T Offline
                thenewbee
                wrote on last edited by
                #12

                href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a> Here i havent used the concatenation but i have the problem with the quotation marks.

                J 1 Reply Last reply
                0
                • T thenewbee

                  href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a> Here i havent used the concatenation but i have the problem with the quotation marks.

                  J Offline
                  J Offline
                  J4amieC
                  wrote on last edited by
                  #13

                  Seeing as you cant be bothered to read my answer, i cant be bothered to retype it, so i'll jusdt copy/paste from my answer

                  J4amieC wrote:

                  <a runat="server" id="h2" href='<%# "frmViewInvoiceDetails.aspx?invoiceID=" + DataBinder.Eval(Container.DataItem, "firstname")%>'> NB: Pay special attention to the usage of single & double quotes in the above example.

                  T 1 Reply Last reply
                  0
                  • J J4amieC

                    Seeing as you cant be bothered to read my answer, i cant be bothered to retype it, so i'll jusdt copy/paste from my answer

                    J4amieC wrote:

                    <a runat="server" id="h2" href='<%# "frmViewInvoiceDetails.aspx?invoiceID=" + DataBinder.Eval(Container.DataItem, "firstname")%>'> NB: Pay special attention to the usage of single & double quotes in the above example.

                    T Offline
                    T Offline
                    thenewbee
                    wrote on last edited by
                    #14

                    Ok i understood that but can u plz help me to give proper quotation for the below code href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a>

                    J 1 Reply Last reply
                    0
                    • T thenewbee

                      Ok i understood that but can u plz help me to give proper quotation for the below code href= "frmViewInvoiceDetails.aspx?invoiceID=<%#DataBinder.Eval(Container,"DataItem.InvoiceID")%>">Click Here</a>

                      J Offline
                      J Offline
                      J4amieC
                      wrote on last edited by
                      #15

                      That code will never work - once again i'll copy from my original answer (this is getting boring) "You cant mix databainding expressions and constant text in an attribute value, you have to concatenate it all in the databinding expression:"

                      1 Reply Last reply
                      0
                      • J J4amieC

                        Abhishek Sur wrote:

                        It is better to handle server controls in the server and client control in the designer

                        But the markup is also dealt with by the server:confused:

                        A Offline
                        A Offline
                        Abhishek Sur
                        wrote on last edited by
                        #16

                        I know... It is actually parse through the marker during Page Initialization.... But I think those events are meant to handle those, so why do we avoid them and make all those unnecessary adjustments in the Markup. I always like clean html in the designer with Server Controls in place as well.. It is true, that sometimes I need to do those classic ASP style Server tags in designer, but I do like avoiding those. We create Server controls to have better grip of server side (which is the main motive of ASP.NET) which is absent in the Classic ASP where we always need to write Server Tags in between htmls. For instance we can easily write : <asp:Label runat="server" Id="lbl" Text="<%=this.X %>"></asp:Label> (infact it will render nothing in the page) but we dont do, rather we use Page_Load and then set lbl.Text = this.X; Anyways, some like to write more and more Servertags within html, but personally I always like to handle them from codebehind, if it is avoidable. :):thumbsup:

                        Abhishek Sur **Don't forget to click "Good Answer" if you like this Solution.


                        My Latest Articles-->** Windows7 API Code Pack
                        Simplify Code Using NDepend
                        Basics of Bing Search API using .NET

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups