2016-12-16 2 views
0

diese Frage, bevor sie um gebeten worden sein, aber irgendwie kann ich die awsner nicht finden ...Get Eingangswert von Repeater mit Request.Item

Auf meinem Default.aspx ich einen Repeater, dass ich Daten setzen darauf mit Databinder.Eval.

Aber was ich als nächstes tun möchte, ist, nachdem ich auf das Bild Ich möchte eine Antwort der Werte in Eingaben (versteckt), die neben den Bildern sind.

Hier ist mein Code:

<form id="form1" runat="server"> 
     <div class="container-fluid"> 
      <table class="table-hover" style="margin: 20px auto;"> 
       <asp:Repeater ID="rpRow" runat="server"> 
        <ItemTemplate> 
         <tr> 
          <td> 
           <img style="margin: 5px;" id="ImageBar" src="<%# DataBinder.Eval(Container.DataItem, "ImageBar")%>" onclick="<%= _imgPostBackCall %>;"/> 
           <input id="PromoID_<%# DataBinder.Eval(Container.DataItem, "PromoID")%>" type="hidden" name="PromoID" value="<%# DataBinder.Eval(Container.DataItem, "PromoID")%>" /> 
           <input id="PromoCode_<%# DataBinder.Eval(Container.DataItem, "PromoCode")%>" type="hidden" name="PromoCode" value="<%# DataBinder.Eval(Container.DataItem, "PromoCode")%>" /> 
          </td> 
         </tr> 
        </ItemTemplate> 
       </asp:Repeater> 
      </table> 
     </div> 
    </form> 

-Code hinter:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     _imgPostBackCall = ClientScript.GetPostBackEventReference(Me, "") 

     If Not Me.IsPostBack Then 

      'DataTable 
      Dim dt_Data As DataTable = PromoDL.GetPromo() 

      'Table list 
      rpRow.DataSource = dt_Data 
      rpRow.DataBind() 

      dt_Data.Dispose() 
     Else 
      'Event Click 


      Dim PromoID As String = Request.Item("PromoID") 
      Dim PromoCode As String = Request.Item("PromoCode") 
      Response.Write("PromoID: " & PromoID & " PromoCode: " & PromoCode) 
     End If 
    End Sub 

Was ich auf Antwort bekommen, ist so etwas wie dieses

PromoID: 3,1 Promocode: BFC40, BFCN20

(die die zwei Reihen sind ich auf meiner DB), aber ich will, was ist es, wie diese

PromoID zu erscheinen: 3 Promocode: BFC40

(das Bild zu welchem ​​entsprechen geklickt i)

Antwort

0

Nevermind machte ich die Dinge viel komplizierter. Alles, was ich tun musste, war ein <a> innerhalb des Repeaters, wie folgt:

<form id="form1" runat="server"> 
     <div class="container-fluid"> 
      <table class="table-hover" style="margin: 20px auto;"> 
       <asp:Repeater ID="rpRow" runat="server"> 
        <ItemTemplate> 
         <tr> 
          <td> 
           <a href="Promo.aspx?Code=<%# DataBinder.Eval(Container.DataItem, "PromoCode")%>"> 
            <img style="margin: 5px;" id="<%# DataBinder.Eval(Container.DataItem, "PromoCode")%>" src="<%# DataBinder.Eval(Container.DataItem, "ImageBar")%>" /> 
           </a> 
          </td> 
         </tr> 
        </ItemTemplate> 
       </asp:Repeater> 
      </table> 
     </div> 
    </form>