将两个excel表格中的内容分别导入到两个gridview中 然后点击比较差异 那两个gridview中不同的数据显示红色
求高手解决 最好有代码提示!!!
解决方案 »
- activeX 问题
- objectdatasource中的select方法,怎样才能强制触发
- ***发现导分的了,还是个星星呢,快来看看吧,我已经向版主举报了,就看版主是怎么办的了。
- 如何把普通的ASP.NET工程升级为ajax?
- 用了master框架以后,gridview分页触发不了,有人知道原因吗?
- asp.net2.0 第一次的执行速度慢,但是执行过后,过了几分钟再执行速度又很慢
- 大家好!各位朋友可否提供一些.NET和SQL server 面试的资料及题目啊?很急,谢谢各位的帮忙了!
- DataGrid模板列中的编辑模板中有一个列表框,如何在编辑时动态改变内容?
- 如何在网站首页中时实显示用户登陆的时间?各位高手请帮个忙,很急,在线等待!!
- 入门问题:我想短时间学习Asp.net,看什么书好????
- 帮忙写下SQL语句啊
- 无法将类型“bool”隐式转换为“System.Data.DataTable
excel导入gridview这个会吧,
下面这是一个简单的实现方式,当然需要重新去确认自己excel的版本
Excelhttp://www.cnblogs.com/solo/archive/2008/04/14/1152802.html)至于比较最笨的也最好理解的方法就是一个单元格一个单元格去比较了,双重循环去比较,如果值不一致就把背景色标为红色
新建行的时候比较新创建一个view row 设置row的字体颜色就行了
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt2 = new DataTable();
dt2.Columns.Add("id");
dt2.Columns.Add("name");
dt2.Rows.Add("0001", "name1");
dt2.Rows.Add("0002", "name3");
dt2.Rows.Add("0004", "name4");
GridView2.DataSource = dt2;
GridView2.DataBind(); DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("name");
dt.Rows.Add("0001", "name1");
dt.Rows.Add("0002", "name2");
dt.Rows.Add("0003", "name3"); GridView1.DataSource = dt;
GridView1.DataBind();
// 把多出的行的背景色变成红色
if (GridView1.Rows.Count > GridView2.Rows.Count)
{
for (int i = GridView2.Rows.Count; i < GridView1.Rows.Count; i++)
{
GridView1.Rows[i].BackColor = Color.Red;
}
}
else if (GridView1.Rows.Count < GridView2.Rows.Count)
{
for (int i = GridView1.Rows.Count; i < GridView2.Rows.Count; i++)
{
GridView2.Rows[i].BackColor = Color.Red;
}
}
}
} protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// 数据绑定的时候根据现在的值去跟另一个比较,不同的背景色设置红色
// 注意:GridView2要先完成数据绑定,然后在GridView1_RowDataBound的绑定事件里去比较
// 也可以在两个都完成绑定后,通过双重循环来直接遍历gridview比较
if (e.Row.RowType != DataControlRowType.DataRow)
{ return; }
if (e.Row.RowIndex >= GridView2.Rows.Count)
{
return;
}
for (int i = 0; i < e.Row.Cells.Count; i++)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
if (!GridView2.Rows[e.Row.RowIndex].Cells[i].Text.Equals(drv.Row[i].ToString()))
{
GridView2.Rows[e.Row.RowIndex].Cells[i].BackColor = Color.Red;
e.Row.Cells[i].BackColor = Color.Red;
}
}
}
这样如何做呢
你上面的gridview中的事件 只能是第一行和第一行比较 不能第一行的和另外一个gridview中的所有行像比较