2012-11-29 107 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()); 
}