使用Request.Item从Repeater获取输入值

时间:2016-12-16 12:50:19

标签: javascript vb.net

这个问题之前可能已被问到,但不知怎的,我找不到更好的......

在我的Default.aspx上我有一个转发器,我用Databinder.Eval将数据放在上面。

但我接下来要做的是在点击图像后我想要一个响应输入(隐藏)中的值,这些是下一个图像。

这是我的代码:

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

代码背后:

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

我得到的回应是这样的

  

促销ID:3,1 PromoCode:BFC40,BFCN20

(我的数据库中有2行),但我想要的是它看起来像这样

  

PromoID:3 PromoCode:BFC40

(对应于我点击的图像)

1 个答案:

答案 0 :(得分:0)

没关系我让事情变得更加复杂。 我需要做的只是在转发器中加<a>,如下所示:

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