как найти элемент управления OfferID? - PullRequest
0 голосов
/ 28 апреля 2011
<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 строки, в которой я нажимаю ... У меня есть кнопка ссылки 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 голосов
/ 28 апреля 2011

Вам вообще не нужен Label, вы можете получить OfferID из коллекции DataKeys.

Сначала добавьте CommandName в LinkButton:

<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);
    }
}
0 голосов
/ 28 апреля 2011

Присоединитесь к событию ListView.ItemCommand, и в этом событии вы можете выполнить поиск по Item в ListViewCommandEventArgs, чтобы найти элемент управления, который необходимо изменить.

Обновите ListView в ASPX, чтобы подключить событие ItemCommand:

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

Событие ItemCommand наступит при нажатии кнопки или LinkButton (или какого-либо другого элемента управления в виде кнопки). Чтобы обработать это событие, добавьте следующее код для вашего * .aspx.cs (code-behind) файла:

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...