这个目的可以达到,高手不在话下,但是我不会...... 界面上有二个GridView,在右面的GridView中发兰多行选中(当然也能选一行),用一个按钮把选中的多行数据一起插到左面的GridView中。高手帮忙,在线等。立刻给分。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说一下配置:sql2000左面GridView数据连接用的是ObjectDataSource,右面GridView数据连接用的是SqlDataSource。 你的意思是从Access数据库导入Sql数据库里吗? 你可以将左边选中的数据丢到DataSet里面,然后将这个DataSet绑定到右边去吗? 不是的,二个都是sql2000.说一下,二个表字段结构不一样,但是都有对应相等的字段,只插相同的字段啊。 在按钮的事件中遍历右边的GridView的rows中每一行,FindControl找到CheckBox的列,判断是否Checked,如果是true则根据这一行的key值在左边的数据源中插入相应的数据(调用相应类型的执行插入动作的Method)。在遍历结束,重新绑定(databind)左边的GridView。 哦,我看错了,不好意思哈,懂你的意思了,那么这个相同的字段,是需要你事先设置好吧,既然这样,你还不如使用2个ListBox,直接左右移动就可以了用ListBox里面的Item.Add方法,多方便啊 遍历Rows的时候注意要判断Row的类型。 我写过Winform,你参照一下private void chbSelectAll_CheckedChanged(object sender, EventArgs e) { try { if (chbSelectAll.Checked) { for (int i = 0; i < dgvAlarm.RowCount; i++) { dgvAlarm[0, i].Value = chk.TrueValue; } } else { for (int i = 0; i < dgvAlarm.RowCount; i++) { dgvAlarm[0, i].Value = chk.FalseValue; } } } catch (Exception ex) { new Exception(ex.Message); //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系 MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } } private void btnAddAll_Click(object sender, EventArgs e) { try { for (int i = 0; i < dgvAlarm.RowCount; i++) { bool blnOccured = false; for (int j = 0; j < dgvFixLink.RowCount; j++) { if (dgvFixLink["TagID", j].Value.ToString() == dgvAlarm["TagID", i].Value.ToString()) { blnOccured = true; break; } } if (!blnOccured) { string[] RowAdd = new string[] { dgvAlarm["TagID", i].Value.ToString() }; dtFixLink.Rows.Add(RowAdd); } } SetTagName(); } catch (Exception ex) { new Exception(ex.Message); //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系 MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } } private void btnAdd_Click(object sender, EventArgs e) { try { this.Validate(); for (int i = 0; i < dgvAlarm.RowCount; i++) { if (dgvAlarm[0, i].Value != null) { //僅將被鈎選的Tag加入 if (dgvAlarm[0, i].Value.ToString() == "Y") { bool blnOccured = false; for (int j = 0; j < dgvFixLink.RowCount; j++) { if (dgvFixLink["TagID", j].Value.ToString() == dgvAlarm["TagID", i].Value.ToString()) { blnOccured = true; break; } } if (!blnOccured) { string[] RowAdd = new string[] { dgvAlarm["TagID", i].Value.ToString() }; dtFixLink.Rows.Add(RowAdd); } } } } SetTagName(); } catch (Exception ex) { new Exception(ex.Message); //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系 MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } } private void btnDelete_Click(object sender, EventArgs e) { //判斷被選中的行 try { for (int i = 0; i < dgvFixLink.SelectedRows.Count; i++) { dgvFixLink.Rows[dgvFixLink.SelectedRows[i].Index].HeaderCell.ToolTipText = "*"; } //從datagridview中刪除選中的行 for (int i = 0; i < dgvFixLink.Rows.Count; i++) { if (dgvFixLink.Rows[i].HeaderCell.ToolTipText == "*") { dgvFixLink.Rows.RemoveAt(i); i--; } } } catch (Exception ex) { new Exception(ex.Message); //抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系 MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Dispose(); } } private void btnDeleteAll_Click(object sender, EventArgs e) { dtFixLink.Clear(); } sp1234朋友:你说的很对,我就是不会操作,麻烦写一下好吗?请你喝酒吧。在PB里,我五分钟搞定,这里是菜鸟,五天也搞不定,见笑了。 为什么不是用ListBox呢?既然你就是为了识别那一列放入其他的数据表,没有必要用Gridview的啊;还有,你应该就取了一个ID,然后就是数据库操作了; 一下是ListBox的代码://添加按钮 protected void ibtnAdd_Click(object sender, ImageClickEventArgs e) { for (int i = this.lsbLift.Items.Count; i > 0; i--) { if (this.lsbLift.Items[i - 1].Selected) { this.LsbRight.Items.Add(this.lsbLift.Items[i - 1]); this.lsbLift.Items.Remove(this.lsbLift.Items[i - 1]); } } } //全部添加按钮 protected void ibtnAddAll_Click(object sender, ImageClickEventArgs e) { for (int i = this.lsbLift.Items.Count; i > 0; i--) { this.LsbRight.Items.Add(this.lsbLift.Items[i - 1]); this.lsbLift.Items.Remove(this.lsbLift.Items[i - 1]); } } //删除按钮 protected void ibtnDel_Click(object sender, ImageClickEventArgs e) { for (int i = this.LsbRight.Items.Count; i > 0; i--) { if (this.LsbRight.Items[i - 1].Selected) { this.lsbLift.Items.Add(this.LsbRight.Items[i - 1]); this.LsbRight.Items.Remove(this.LsbRight.Items[i - 1]); } } } //全部删除按钮 protected void ibtnAll_Click(object sender, ImageClickEventArgs e) { for (int i = this.LsbRight.Items.Count; i > 0; i--) { this.lsbLift.Items.Add(this.LsbRight.Items[i - 1]); this.LsbRight.Items.Remove(this.LsbRight.Items[i - 1]); } } Leixueqiyi()朋友:加点注释好吗? 我二个都是数据表啊,怎么用ListBox? 遍历右边的Gridview找出选中的行,然后再加工左侧用于绑定的数据表 根据这一行的key值在左边的数据源中插入相应的数据(调用相应类型的执行插入动作的Method)。这句怎么做?前面我做好了。 楼主的问题只是一个 GET DATAROWS 和INSERT DATAROWS的问题 和界面是什么无所谓啊!前边显示的是数据集还是仅仅一个表号都无所谓而对于楼主来说 怎么读数据和写数据 应该是不在话下吧。 无法找到资源 奇怪的问题 XML作为数据库载体(增删改) 弹出窗口的问题有什么好的解决办法 .net中的重点 用下面的代码下载文件,为什么有的浏览器会关闭?? asp.net 检验控件资料求助... 在asp.net中,我要点按扭后得到页面上的值,如何才能得到?我试过,只要一点按扭,form_load要早于click事件。 Crystal Report在Asp.net中導出為PDF有誤?解決立即送分! 学习C#遇到的难题,很是困惑,请帮帮我?我只有这么多分了, 求助 这个怎么解 调试时报出[没有可用于当前位置的源代码] petshop 求解
左面GridView数据连接用的是ObjectDataSource,
右面GridView数据连接用的是SqlDataSource。
说一下,二个表字段结构不一样,但是都有对应相等的字段,只插相同的字段啊。
private void chbSelectAll_CheckedChanged(object sender, EventArgs e)
{
try
{
if (chbSelectAll.Checked)
{
for (int i = 0; i < dgvAlarm.RowCount; i++)
{
dgvAlarm[0, i].Value = chk.TrueValue;
}
}
else
{
for (int i = 0; i < dgvAlarm.RowCount; i++)
{
dgvAlarm[0, i].Value = chk.FalseValue;
}
}
}
catch (Exception ex)
{
new Exception(ex.Message);
//抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Dispose();
}
} private void btnAddAll_Click(object sender, EventArgs e)
{
try
{
for (int i = 0; i < dgvAlarm.RowCount; i++)
{
bool blnOccured = false;
for (int j = 0; j < dgvFixLink.RowCount; j++)
{
if (dgvFixLink["TagID", j].Value.ToString() == dgvAlarm["TagID", i].Value.ToString())
{
blnOccured = true;
break;
}
} if (!blnOccured)
{
string[] RowAdd = new string[] { dgvAlarm["TagID", i].Value.ToString() };
dtFixLink.Rows.Add(RowAdd);
}
}
SetTagName();
}
catch (Exception ex)
{
new Exception(ex.Message);
//抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Dispose();
}
} private void btnAdd_Click(object sender, EventArgs e)
{
try
{
this.Validate();
for (int i = 0; i < dgvAlarm.RowCount; i++)
{
if (dgvAlarm[0, i].Value != null)
{
//僅將被鈎選的Tag加入
if (dgvAlarm[0, i].Value.ToString() == "Y")
{
bool blnOccured = false;
for (int j = 0; j < dgvFixLink.RowCount; j++)
{
if (dgvFixLink["TagID", j].Value.ToString() == dgvAlarm["TagID", i].Value.ToString())
{
blnOccured = true;
break;
}
} if (!blnOccured)
{
string[] RowAdd = new string[] { dgvAlarm["TagID", i].Value.ToString() };
dtFixLink.Rows.Add(RowAdd);
}
}
}
}
SetTagName();
}
catch (Exception ex)
{
new Exception(ex.Message);
//抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Dispose();
}
}
private void btnDelete_Click(object sender, EventArgs e)
{
//判斷被選中的行 try
{
for (int i = 0; i < dgvFixLink.SelectedRows.Count; i++)
{
dgvFixLink.Rows[dgvFixLink.SelectedRows[i].Index].HeaderCell.ToolTipText = "*";
}
//從datagridview中刪除選中的行
for (int i = 0; i < dgvFixLink.Rows.Count; i++)
{
if (dgvFixLink.Rows[i].HeaderCell.ToolTipText == "*")
{
dgvFixLink.Rows.RemoveAt(i);
i--;
}
}
}
catch (Exception ex)
{
new Exception(ex.Message);
//抱歉,程序出现错误,请尝试重新启动程序,并与管理员联系
MessageBox.Show(ResourceFactory.GetMultilanguage("GENERALERRORMESSAGE"), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.Dispose();
}
} private void btnDeleteAll_Click(object sender, EventArgs e)
{
dtFixLink.Clear();
}
在PB里,我五分钟搞定,这里是菜鸟,五天也搞不定,见笑了。
//添加按钮
protected void ibtnAdd_Click(object sender, ImageClickEventArgs e)
{
for (int i = this.lsbLift.Items.Count; i > 0; i--)
{
if (this.lsbLift.Items[i - 1].Selected)
{
this.LsbRight.Items.Add(this.lsbLift.Items[i - 1]);
this.lsbLift.Items.Remove(this.lsbLift.Items[i - 1]);
}
}
} //全部添加按钮
protected void ibtnAddAll_Click(object sender, ImageClickEventArgs e)
{
for (int i = this.lsbLift.Items.Count; i > 0; i--)
{
this.LsbRight.Items.Add(this.lsbLift.Items[i - 1]);
this.lsbLift.Items.Remove(this.lsbLift.Items[i - 1]);
}
} //删除按钮
protected void ibtnDel_Click(object sender, ImageClickEventArgs e)
{
for (int i = this.LsbRight.Items.Count; i > 0; i--)
{
if (this.LsbRight.Items[i - 1].Selected)
{
this.lsbLift.Items.Add(this.LsbRight.Items[i - 1]);
this.LsbRight.Items.Remove(this.LsbRight.Items[i - 1]);
}
}
} //全部删除按钮
protected void ibtnAll_Click(object sender, ImageClickEventArgs e)
{
for (int i = this.LsbRight.Items.Count; i > 0; i--)
{
this.lsbLift.Items.Add(this.LsbRight.Items[i - 1]);
this.LsbRight.Items.Remove(this.LsbRight.Items[i - 1]);
}
}
前边显示的是数据集还是仅仅一个表号都无所谓
而对于楼主来说 怎么读数据和写数据 应该是不在话下吧。