每当用户单击“添加到购物车”按钮时,我都会将用户在“找到的项目”网格(屏幕截图的左侧)中选择的那些行添加到“选择的项目”网格(屏幕截图的右侧)中。
屏幕截图:链接http://img856.imageshack.us/img856/3015/datagridview.jpg http://img856.imageshack.us/img856/3015/datagridview.jpg.
搜索按钮会显示搜索服务中的图书列表。
我将其显示在 itemsFoundList 中,即 DataGridView。
private void searchButton_Click( object sender, EventArgs e )
{
itemsFoundList.Columns.Clear ();
string[] list = searchServiceClient.BookSearch ( getBookName.Text, getAuthorName.Text );
itemsFoundList.Columns.Add ( "Items", "Items found:" );
displayToGrid ( itemsFoundList, list );
}
现在我不知道如何将选定的行添加到 cartList(这是一个 DataGridView)。
private void addToCart_Click( object sender, EventArgs e ) {
//I am not getting what to write here.
}
首先,您可能希望将 DataGridView 的 SelectionMode 更改为 FullRowSelect。否则,用户可能会选择单元格而不是行,并且下面的代码将不起作用。 [虽然你可以对选定的单元格执行类似的操作]
然后您需要从类似于以下的代码开始:
foreach (DataGridViewRow r in dataGridView1.SelectedRows)
{
//Code to add selected row to new datagrid.
//Important to note that dataGridView2.Rows.Add(r) will not work
//because each row can only belong to one data grid. You'll have
//to create a new Row with the same info for an exact copy
}
就我个人而言,我会将 bookid 作为隐藏列返回,以便在您处理用户的购物车时最终可以使用它。
如果您想将项目从一个 DataGridViewRow 移动到另一个 [以便它们一次只能存在于一个列表中],您可以这样做。
foreach (DataGridViewRow r in dataGridView1.SelectedRows)
{
dataGridView1.Rows.Remove(r);
dataGridView2.Rows.Add(r);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)