TeaDrinkingGeek
TeaDrinkingGeek

Reputation: 2023

How to add ID when button is clicked?

I want to add the value of TID when viewdatesbutton.jpg is clicked so I can pass it to another web page.

How can I do this?

code:

<asp:repeater id="Repeater1" datasourceid="SqlDataSource1" runat="server">

<itemtemplate>

<div class="content-1g">
    <div class="content-1-1g">
        </div>
    <div class="content-1-2g"><p class="none"><%# Eval("TName")%></p><p><span style="color:#FFFFFF"><%# Eval("TDetails")%></span></p>
        <div class="content-1-2ag">
            <div class="content-1-3g">Duration: <%# Eval("TDuration")%> </div>
            <div class="content-1-3g">Adult: £<%# Eval("TPriceadult")%> </div>
            <div class="content-1-3g">Senior/Student: £<%# Eval("TPricesenior")%> </div>
            <div class="content-1-3g">Child: £<%# Eval("TPricechild")%> </div>
        </div>
        <div class="content-1-2bg"><img alt="" src="/images/viewdatesbutton.jpg" />
        </div>
    </div>
</div>

    <div class="line"><hr class="top" /></div>

</itemtemplate>

</asp:repeater>

    <asp:sqldatasource id="SqlDataSource1"  runat="server" 
        ConnectionString="<%$ ConnectionStrings:ChinatowndbConnString %>" 
        SelectCommand="SELECT TID, TName, TDetails, TDuration, TPriceadult, TPricesenior, TPricechild FROM [Tour] WHERE TEventCategory=2">
 </asp:sqldatasource>

I assume I can have a function on a onclick to the button? How do I pass the value of TID on it?

Regards, Tea

EDIT:

        <asp:LinkButton ID="lbYear" runat="server" CausesValidation="false" OnCommand="redirectnewpage" CommandArgument='<%#Eval("TourId")%>'>
            <asp:Image ID="imgFolder" runat="server" ImageUrl="/images/viewdatesbutton.jpg" />
        </asp:LinkButton>


protected void redirectnewpage(object sender, CommandEventArgs e)
{
    Response.Redirect("book.aspx?tourid="+ e.CommandArgument.ToString());
}

Upvotes: 0

Views: 99

Answers (4)

Boriss Pavlovs
Boriss Pavlovs

Reputation: 1441

    <asp:LinkButton ID="lbYear" runat="server" CausesValidation="false" OnCommand="redirectnewpage" CommandArgument='<%#"tourId="+Eval("TourId").ToString()+"&TID="+Eval("TID").ToString()%>'>
        <asp:Image ID="imgFolder" runat="server" ImageUrl="/images/viewdatesbutton.jpg" />
    </asp:LinkButton>


protected void redirectnewpage(object sender, CommandEventArgs e)
{
   Response.Redirect("book?"+ e.CommandArgument.ToString());
}

Upvotes: 0

TeaDrinkingGeek
TeaDrinkingGeek

Reputation: 2023

<asp:LinkButton ID="lbYear" runat="server" CausesValidation="false" OnCommand="redirectnewpage" CommandArgument='<%#Eval("TourId")%>'>
            <asp:Image ID="imgFolder" runat="server" ImageUrl="/images/viewdatesbutton.jpg" />
        </asp:LinkButton>


protected void redirectnewpage(object sender, CommandEventArgs e)
{
    Response.Redirect("book.aspx?tourid="+ e.CommandArgument.ToString());

Upvotes: 0

Blachshma
Blachshma

Reputation: 17385

You can add an ImageButton to your Template, and use the CommandArgument to insert the TID. For instance:

<asp:ImageButton ImageUrl="~/icon.png" ID="TIDButton" runat="server"  
                 CommandArgument=<%# Eval("TID") %> OnClick="TIDButton_Click" />

Then, to get it in your code behind:

    protected void TIDButton_Click(object sender, EventArgs e)
    {
        ImageButton b = sender as ImageButton;
        if (b == null)
          return; 

        string TID = b.CommandArgument;
    }

Upvotes: 0

Oleks
Oleks

Reputation: 32323

You can use <asp:ImageButton> server side control and use of CommandArgument property of it:

<div class="content-1-2bg">
    <asp:ImageButton runat="server" 
         ImageUrl="/images/viewdatesbutton.jpg" 
         CommandArgument='<%# Eval("TID") %>' 
         OnCommand="ImgButton_OnCommand" />

</div>

and then get the TID value in the OnCommand event handler:

private void ImgButton_OnCommand(object sender, CommandEventArgs e)
{
    var tid = int.Parse(e.CommandArgument.ToString());
}

Upvotes: 1

Related Questions