如何找到控件OfferID?

时间:2011-04-27 22:06:03

标签: asp.net

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" 
            DataKeyNames="OfferID" GroupItemCount="2" >

       <LayoutTemplate>
           <table runat="server">
               <tr runat="server">
                   <td runat="server">
                       <table ID="groupPlaceholderContainer" runat="server" border="0" style="">
                           <tr ID="groupPlaceholder" runat="server">
                           </tr>
                       </table>
                   </td>
               </tr>
               <tr runat="server">
                   <td runat="server" style="">
                   </td>
               </tr>
           </table>

       </LayoutTemplate>

       <ItemTemplate>
           <td runat="server" style="">

               <div id="wrapper">

        <div id="ResImage">


<div id="slideshow">

    <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval ("Image1") %>' Width="250px" Height="190px" CssClass="active" />
    <asp:Image ID="Image5" runat="server" ImageUrl='<%# Eval ("Image2") %>' Width="250px" Height="190px" />
    <asp:Image ID="Image4" runat="server" ImageUrl='<%# Eval ("Image3") %>' Width="250px" Height="190px" />


</div>

        </div>
        <div id="ResDesc">
            <asp:Label ID="lblDesc" runat="server" Width="290px" Height="190px" BackColor="White" Text='<%# Eval("Offer") %>'></asp:Label>

        </div>
        <div id="ResPrice1">
            <asp:Label ID="lblValue" runat="server" Text="Value" CssClass="ResValue"></asp:Label>
            <asp:Label ID="lblDiscount" runat="server" Text="Discount" CssClass="ResDiscount"></asp:Label>
            <asp:Label ID="lblYouPay" runat="server" Text="You Pay" CssClass="ResYouPay"></asp:Label>
        <div id="ResPrice2">
            <asp:Label ID="lblValueAmt" runat="server" Text='<%# Eval("Value") %>' CssClass="ResValueAmt"></asp:Label>
            <asp:Label ID="lblDiscountAmt" runat="server" Text='<%# Eval("Discount") %>' CssClass="ResDiscountAmt"></asp:Label>
            <asp:Label ID="lblYouPayAmt" runat="server" Text='<%# Eval("YouPay") %>' CssClass="ResYouPayAmt"></asp:Label>
        </div>
            <asp:Label ID="lblRestaurantName" runat="server" Text='<%# Eval("RestaurantName") %>'></asp:Label><br />
            <asp:LinkButton ID="lnkGetCoupon" runat="server">Get Discount Coupon</asp:LinkButton>
        </div>

        <div id="HowItWorks">
            <asp:Label ID="lblHowItWorks" runat="server" Text="How It Works?" Font-Bold="True" Font-Size="Small" ForeColor="Red"></asp:Label>
            <ul>
            <li><asp:Label ID="Label3" runat="server" Text="1.Click on the 'Get Discount Coupon' button" Font-Size="10px"></asp:Label></li>
            <li><asp:Label ID="Label4" runat="server" Text="2.Get a print of your Voucher and carry it during your visit to the outlet." Font-Size="10px"></asp:Label></li>
            <li><asp:Label ID="Label5" runat="server" Text="3.Show your Voucher and pay the amount directly to the merchant. " Font-Size="10px"></asp:Label></li>
            </ul>
        </div>

        <asp:Label ID="OfferID" runat="server" Text='<%# Eval("OfferID") %>' Visible="false"></asp:Label>
        </div>
           </td>
       </ItemTemplate>

如何使用id = OfferID找到标签控件...如何在这里使用findcontrol? 我想找到我点击的行的OfferID ...我有一个linkbutton lnkGetCoupon ..当我点击链接按钮...我想将查询字符串中的OfferID传递到下一页。

我是新用户,所以他们不让我回答我自己的问题

继承人的答案......

我将CommandArgument='<%# Eval("OfferID") %>添加到链接按钮。

<asp:LinkButton ID="lnkGetCoupon" CommandArgument='<%# Eval("OfferID") %>' runat="server">Get Discount Coupon</asp:LinkButton>

并使用ListView1_ItemCommand

Protected Sub ListView1_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles ListView1.ItemCommand
        Dim offer As String
        offer = e.CommandArgument.ToString()
        Dim url As String = "~/RestaurantDedicatedPage.aspx?offerID=" + offer
        Response.Redirect(url, True)
    End Sub

2 个答案:

答案 0 :(得分:0)

附加到ListView.ItemCommand事件,在该事件中,您可以搜索Item中的ListViewCommandEventArgs以找到您需要更改的控件。

更新ASPX中的ListView以挂接ItemCommand事件:

<asp:ListView ... OnItemDataBound="ListView1_ItemCommand">
    <ItemTemplate>
        ...
        <asp:LinkButton id="lnkGetCoupon" CommandName="View" CommandArgument="<%# Eval("OfferID") %>" />
        ...
    </ItemTemplate>
</asp:ListView>

单击Button或ItemCommand(或某些其他按钮式控件)时,将触发LinkButton事件。要处理此事件,请添加以下内容 代码到* .aspx.cs(代码隐藏)文件:

protected void ListView1_ItemDataBound(object sender, ListViewCommandEventArgs e)
{
    //Check if the lnkGetCoupon button was clicked.
    if (string.Equals("View", e.CommandName))
    {
        //Get the offerID from the CommandArgument.
        int offerID = int.Parse(e.CommandArgument);

        //Perform your logic using the offerID
    }
}

答案 1 :(得分:0)

您根本不需要Label,您可以从DataKeys集合中获取OfferID。

首先,将CommandName添加到LinkBut​​ton:

<asp:LinkButton ID="lnkGetCoupon" runat="server" CommandName="GetCoupon">Get Discount Coupon</asp:LinkButton>

然后在ItemCommand处理程序中使用它:

protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
    if (e.CommandName == "GetCoupon")
    {
        ListViewDataItem item = (ListViewDataItem)e.Item;
        int index = item.DataItemIndex;
        string offerID = ((ListView)sender).DataKeys[index]["OfferID"].ToString();

        Response.Redirect("yourUrl" + offerID);
    }
}