-1

ボタンをクリックして変数に送信した後、データリストのセルにアクセスする方法...

4

2 に答える 2

1

    <ItemTemplate>
    <asp:Label ID="ProductNameLabel" runat="server" Text='<%# Eval("Name") %>' /><br />        

     <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%# Eval("ImageURL","~/Images/{0}") %>'  />

        <asp:Label ID="PriceLabel" runat="server" Text='<%# Eval("Price", "{0:C}") %>'></asp:Label><br />

        <asp:Button ID="buyNowBtn" runat="server" Text="buy Now" OnClick="buyNowBtn_Click" />                     
    </ItemTemplate>

    </asp:DataList>

以下には、ProductName と Price を表示する 2 つのラベル コントロールもあります。

    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
protected void BuyNowButton_Click(オブジェクト送信者, EventArgs e)
        {
                ボタン BuyNowButton = (ボタン)送信者;
                DataListItem item = (DataListItem)BuyNowButton.NamingContainer;
                Label NameLabel = (Label)item.FindControl("NameLabel");
                ラベル ValueLabel = (ラベル)item.FindControl("ValueLabel");
                ResultsLabel.Text += String.Format("クリック: {0} - {1} 
", NameLabel.Text, ValueLabel.Text); }
于 2012-06-02T16:41:48.417 に答える
0

上記のコードはきれいに見えますが、DataGrid 内にある任意のコントロールをクリックすると、最初に発生するイベントは になります protected void DataListName_ItemCommand(object source, DataListCommandEventArgs e)。したがって、イベント内にコードを配置するのが正確です。

そして、同じ方法でアイテムを見つけることができます

ImageButton img = (ImageButton)e.Item.FindControl("ImageButton1");
img.(property that you wanna access)
于 2012-06-02T20:40:22.900 に答える