单击按钮后访问datalist中的单元格?

时间:2012-06-02 15:56:36

标签: c# asp.net

如何在单击按钮和传输到变量...

后访问数据列表中的单元格

2 个答案:

答案 0 :(得分: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>

下面我还有2个Label控件,它将显示ProductName和Price

    <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(object sender, EventArgs e)
        {
                Button BuyNowButton = (Button)sender;
                DataListItem item = (DataListItem)BuyNowButton.NamingContainer;
                Label NameLabel = (Label)item.FindControl("NameLabel");
                Label ValueLabel = (Label)item.FindControl("ValueLabel");
                ResultsLabel.Text += String.Format("Click: {0} - {1}
", NameLabel.Text, ValueLabel.Text); }

答案 1 :(得分:0)

上面的代码看起来很整洁,但是当你点击DataGrid中的任何控件时,第一个被触发的事件将是protected void DataListName_ItemCommand(object source, DataListCommandEventArgs e),因此将代码放入事件中是准确的。

然后你可以用同样的方式找到这些项目

ImageButton img = (ImageButton)e.Item.FindControl("ImageButton1");
img.(property that you wanna access)