我试过这个,但没有将选定的值带到另一个网格视图
string data = "";
foreach (GridViewRow row in GridView5.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[0].FindControl("chkCtr") CheckBox);
if (chkRow.Checked)
{
string Brand_Name = row.Cells[1].Text;
string Market_Name = row.Cells[2].Text;
string USC = row.Cells[3].Text;
string Manufacture = row.Cells[4].Text;
data = data + Brand_Name + " , ";
//;+ Market_Name + " , " + USC + ","+Manufacture+"";
gvrProducts.Visible = true;
gvrProducts.DataSource = data;
// ListBox1.DataBind();
gvrProducts.DataBind();
}
}
}
请帮忙
答案 0 :(得分:1)
GridView需要data source control,例如LinqDataSource,ObjectDataSource或SqlDataSource控件。您正在使用字符串变量绑定gridview(不知道它如何绑定数据)。有很多方法可以绑定gridview,但我通过创建动态DataTable解释了这一点:
为第二个gridview创建一个空DataTable:
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("Brand_Name", typeof(string)));
dt.Columns.Add(new DataColumn("Market_Name", typeof(string)));
dt.Columns.Add(new DataColumn("USC", typeof(string)));
dt.Columns.Add(new DataColumn("Manufacture", typeof(string)));
之后在foreach循环中向此数据表添加行:
foreach (GridViewRow row in GridView5.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[0].FindControl("chkCtr") CheckBox);
if (chkRow.Checked)
{
dr = dt.NewRow();
dr["Brand_Name"] = row.Cells[1].Text;
dr["Market_Name"] = row.Cells[2].Text;
dr["USC"] = row.Cells[3].Text;
dr["Manufacture"] = row.Cells[4].Text;
dt.Rows.Add(dr);
}
}
}
然后使用Datatable
绑定gridviewif(dt.Rows.Count>0)
{
gvrProducts.Visible = true;
gvrProducts.DataSource = dt;
gvrProducts.DataBind();
}
答案 1 :(得分:0)
尝试添加此
Private Sub Gridview_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) Handles Gridview.CurrentCellDirtyStateChanged
Gridview.CommitEdit(DataGridViewDataErrorContexts.Commit)
End Sub
然后
Private Sub Gridview_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles Gridview.CellValueChanged
Try
Gridview.CommitEdit(DataGridViewDataErrorContexts.Commit)
'add commit when chckbox is checked. Then your procedure/staff here.
'Or call your for loop here
Catch ex As Exception
End Try
End Sub