2012-11-29 108 views
0

我想单击viewdatesbutton.jpg时添加TID的值,以便将其传递到另一个网页。单击按钮时如何添加ID?

我该怎么做?

代码:

<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> 

我想我可以有一个的onclick到按钮的函数吗?我如何传递TID的价值?

问候, 茶

编辑:

 <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()); 
} 
+1

你可以添加一个或者,如果您需要在服务器端的值,使用asp:HiddenField。更多信息在这里:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.hiddenfield.aspx – tranceporter

回答

1

您可以使用<asp:ImageButton>服务器端的控制和利用它CommandArgument属性:

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

</div> 

,然后获得在TIDOnCommand事件处理程序:

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

看看我的解决方案(见编辑) – TeaDrinkingGeek

+0

@TeaDrinkingGeek:是的,但一'ImageButton'比两个服务器端'Linkbutton' +'Image'更容易,就我而言。 – Alex

+0

+1同样的答案,但你更快:) – Blachshma

0

您可以将ImageButton添加到您的模板,并使用CommandArgument来插入TID。 例如:

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

然后,把它在后面的代码:

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

     string TID = b.CommandArgument; 
    } 
0
<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()); 
0
<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()); 
}