0
listview의 버튼을 사용하여 데이터 테이블에서 datarow를 삭제하는 데 문제가 있습니다. 행을 삭제하기 위해 선택한 단추를 사용하려고합니다. 카트에listview 컨트롤을 통해 datatable에서 datarow를 제거하십시오.
protected void ShoppingCart_SelectedIndexChanged(object sender, EventArgs e)
{
String title = ((Label)(ShoppingCart.Items[ShoppingCart.SelectedIndex].FindControl("Title"))).Text;
DataTable shoppingcart = (DataTable)HttpContext.Current.Session["Cart"];
DataRow[] rows = shoppingcart.Select("Title ='" + title + "'");
for (int i = rows.Length - 1; i >= 0; i--)
{
shoppingcart.Rows.Remove(rows[i]);
}
shoppingcart.AcceptChanges();
ShoppingCart.DataSource = shoppingcart;
ShoppingCart.DataBind();
}
목록보기 ::
<asp:ListView ID="ShoppingCart" runat="server" onselectedindexchanged="ShoppingCart_SelectedIndexChanged"
>
<ItemTemplate>
<table>
<tr>
<td>
<asp:Label ID="idlabel1" runat="server" Text='<%#Eval("id") %>' />
</td>
<td>
<asp:Label ID="titlelabel" runat="server" Text='<%# Eval("Title")%>'></asp:Label>
</td>
<td>
<asp:Label ID="pricelabel" runat="server" Text='<%#Eval("Price") %>'></asp:Label>
</td>
<td>
<asp:TextBox ID="quantitytb" runat="server" Width="50px" Text='<%#Eval("quantity") %>'></asp:TextBox>
</td>
<td>
<asp:Label ID="subtotallabel" runat="server" Text='<%#getsubtotal(decimal.Parse(Eval("Price").ToString()), int.Parse(Eval("quantity").ToString())) %>'></asp:Label>
</td>
<td>
<asp:Button ID="Button1" runat="server" Text="-" Font-Names="Web Symbols" CommandName="Select"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:ListView>
클래스 ::
public DataTable shoppingCart()
{
CartTable = new DataTable("cart");
CartTable.Columns.Add("ID", typeof(Int32));
CartTable.Columns["ID"].AutoIncrement = true;
CartTable.Columns["ID"].AutoIncrementSeed = 1;
CartTable.Columns.Add("Title",typeof(String));
CartTable.Columns.Add("Price");
CartTable.Columns.Add("quantity");
CartTable.Columns["quantity"].DataType = typeof(Int32);
tableRow = CartTable.NewRow();
tableRow["Title"] = title;
tableRow["Price"] = price;
tableRow["quantity"] = quantity;
CartTable.Rows.Add(tableRow);
return CartTable;
}
내가 그것을 삭제하려고하지만 그것은 작동하지 않습니다. 누구든지 나를 도울 수 있습니까?
두 가지를 모두 사용해 보았지만 아무 일도 일어나지 않았습니다. – eugene