が動作しません、すべてのリスト項目のforeachの操作を行い、その後、私は他のリスト項目を気にいけないので、コントロールを見つけることよりも、これを行うには良い方法があります希望テキストボックスの値がユーザーによって変更される可能性があるためです。実行時にCommandArgumentに値をバインドしようとするのは妥当ではありません。
ListViewのItemCommandイベントを処理すると、ボタンがクリックされたListViewItemにアクセスできるため、FindControlを使用してテキストボックスを取得し、その値を確認できます。
これが機能するには、ImageButtonコントロールにCommandName値を追加する必要があります。そして、あなたは単にコマンド引数の製品IDを直接渡すでしょう。
だから、あなたのボタンは次のようになります。
<asp:ImageButton ID="btnAdd" runat="server" Tooltip="Aggregar producto" CommandName="AddProduct"
CommandArgument="<%# Eval("IdProduct") %>" />
そして、あなたの分離コードは、この(テストしていない)のようなものになります。
protected void lv_Productos_OnItemCommand(object sender, ListViewCommandEventArgs e)
{
if (String.Equals(e.CommandName, "AddProduct"))
{
// Get a reference to your textbox in this item
TextBox textbox = e.Item.FindControl("QuantityTextBox") as TextBox;
if (textbox != null)
{
int quant = 0;
if (int.TryParse(textbox.Value, quant))
{
int prodId = (int)e.CommandArgument;
//do what you want with the quantity and product id
}
}
}
}
を