GridView一点技巧

原创 2007年10月08日 00:13:00

1,给GridView加上鼠标移动改变背景色效果:

   增加GridView的RowCreated(很明显是当GridView行创建)事件代码
这里this.style.backgroundColor='#C0C0FF' 的值可以是这样的十六进制也可以直接是颜色名称如='red'

 protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    
...{
        
if (e.Row.RowType == DataControlRowType.DataRow ) //判断当前行是不是数据行
        ...{
            e.Row.Attributes.Add(
"onmouseover""currentcolor=this.style.backgroundColor;this.style.backgroundColor='#C0C0FF';this.style.cursor='hand';");
            
//当鼠标移走时还原该行的背景色
            e.Row.Attributes.Add("onmouseout""this.style.backgroundColor=currentcolor");
        }

    }

 

2: 判断特定条件,更改单元格背景颜色:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    
...{    //数据加载时发生
        if (e.Row.RowType == DataControlRowType.DataRow)
        
...{    //判断是否是数据行
            if (e.Row.Cells[8].Text == "USA")
            
...{   //判断第9列值是否为"USA"
                
//e.Row.BackColor = System.Drawing.Color.Red;
                e.Row.Cells[8].BackColor = System.Drawing.Color.Red;
            }

        }

    }

3:在父窗体中调用子窗体的gridview值(简单的页面交互):

父窗体代码:

注:单机事件用window.open打开新窗体并获得焦点
<head>
 
<script language=javascript>...
    
function openpage(htmlurl) 
    
...{
        
var newwin=window.open(htmlurl,"newWin","toolbar=no,location=no,directories=no,status=no,scrollbars=yes,menubar=no,resizable=yes,top=100,left=200,width=650,height=300");
        newwin.focus();
        
return false;
    }

    
</script>
</head>
<body>
<input type=text id="name" />
    在按钮中调用:
<input type=button value="调用" onclick="return openpage('GridViewClientClick.aspx');" />
</body>

子窗体代码:

注:girdview中e.Row.Attributes增加单击属性,ReKey并将此行第三列的值传过去
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    
...{
        
if(e.Row.RowType==DataControlRowType.DataRow)
        
...{
            e.Row.Attributes.Add(
"ondblclick""ReKey('" + e.Row.Cells[2].Text+"')");
            
//e.Row.Attributes["style"] = "Cursor:hand"; 
            
// //键盘事件
            
//e.Row.Attributes.Add("OnKeyDown", "GridViewItemKeyDownEvent('" + e.Row.Cells[1].Text + "')");

        }


    }

其中rekey的前台的JS脚本:

注: window.opener是获得该子窗体的父窗体对象getElementById('name').value=k;是把参数值传给父窗体的name对象
<script language=javascript>
function GridViewItemKeyDownEvent(d)
...{
    window.alert(
"事件类型: GridViewItemKeyDownEvent  作用对象: " + d);       
}

function ReKey(k)
...{
    window.opener.document.getElementById(
'name').value=k;
    window.close();
}

</script>

 4:GirdView增加全选列,单击checkbox全选此列并删除

   首先添加一个模版列,在header和item模版中添加checkbox.它的代码如下:注意要把:CheckBox2的 Autopostback属性设为true

    protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
    
...{
        
int i;
        
if (((CheckBox)sender).Checked)
        
...{
            
for (i = 0; i < GridView1.Rows.Count; i++)
            
...{
                ((CheckBox)GridView1.Rows[i].FindControl(
"CheckBox1")).Checked = true;
            }

        }

        
else
        
...{
            
for (i = 0; i < GridView1.Rows.Count; i++)
            
...{
                ((CheckBox)GridView1.Rows[i].FindControl(
"CheckBox1")).Checked =false;
            }

        }

    }

 删除代码:
 

 protected void Button2_Click(object sender, EventArgs e)
    
...{
        SqlConnection con 
= new SqlConnection(ConfigurationManager.ConnectionStrings["girdviewConnectionString"].ConnectionString);
       
        
        con.Open();
        
for (int i = 0; i < GridView1.Rows.Count; i++)
        
...{

            
if (((CheckBox)GridView1.Rows[i].FindControl("CheckBox1")).Checked == true)
            
...
                 
int id=Convert.ToInt32(GridView1.DataKeys[i]["user_id"]);
                 SqlCommand cmd 
= new SqlCommand("delete from [user] where user_id='" + id + "'", con);
                 cmd.ExecuteNonQuery();
                 GridView1.DataBind();
            }


        }

    }

 

 5:为删除增加提示效果:
    
     很简单,发个图片就可以明白了----前提是把"删除"列转化为模版列,代码就一句:  return confirm("确定删除吗?")
   

 6:将表格倒出为Excel: 

   protected void Button1_Click(object sender, EventArgs e)
    
...{
        Response.Clear();
        Response.Buffer 
= true;
        Response.Charset 
= "GB2312";
        Response.AppendHeader(
"Content-Disposition""attachment;filename=FileName.xls");
        
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
        Response.ContentEncoding = System.Text.Encoding.UTF7;
        Response.ContentType 
= "application/ms-excel";//设置输出文件类型为excel文件。 
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
        
this.GridView1.RenderControl(oHtmlTextWriter); 
        Response.Output.Write(oStringWriter.ToString());
        Response.Flush();
        Response.End();

    }

PullToRefresh嵌套GridView实现悬浮以及上拉刷新

使用PullToRefreshlistView嵌套GridView并且实现悬浮功能,总的来说是由以下几个要点需要去注意: 导入PullToRefresh开源库 为listview设置Adapter 为...
  • xiaomi987
  • xiaomi987
  • 2015年05月26日 19:35
  • 1507

visio 2010 技巧

visio选项,增加菜单项“开发工具”。里面的“行为”,可以实现跨线是否交叉。菜单“视图”里,有“视觉帮助”,可以全部勾选。这样就可以看到更多细节。菜单“开始”里,有“位置”,复制对齐方式。...
  • u011729865
  • u011729865
  • 2016年10月05日 11:06
  • 1018

上拉分页加载PullToRefreshGridView

创建drawable目录下的xml文件 frame_loading.xml xml version="1.0" encoding="UTF-8"?> xmlns:android="http...
  • Miss_ZM
  • Miss_ZM
  • 2016年05月22日 21:03
  • 1009

GridView技巧

GridView技巧2008-09-27 11:236.鼠标移到GridView某一行时改变该行的背景色方法一:效果图:做法:双击GridView的OnRowDataBound事件;在后台的GridV...
  • icerock2000
  • icerock2000
  • 2008年10月15日 14:29
  • 683

gridview 技巧

((DataRowView)GridView1.Rows[drv.RowIndex].DataItem)["字段名称"].ToString();
  • svtme
  • svtme
  • 2009年12月08日 18:31
  • 516

一点技巧

1.显示文件夹 用户下的资源库
  • gph66
  • gph66
  • 2014年10月05日 11:32
  • 334

GridView的一点问题

GridView 是ASP.NET 2.0的新增控件之一,它的出现代替了原有的DataGrid控件.如果你使用过ASP.NET 2.0. 在设计GridView控件时你拖拽了一个Bound Field...
  • risingsun_xi
  • risingsun_xi
  • 2009年05月16日 13:26
  • 398

我的OneNote使用心得

不知不觉,做java开发应经两年多了。在几百人的上市公司做过开发,也在十几人的创业公司敲过代码,还再培训机构当过java讲师。之所以做开发这么长时间才开始写博客,是因为最近面试时面试官问我,有没有类似...
  • Answer_God
  • Answer_God
  • 2016年05月26日 17:31
  • 1809

页面传值 && gridview绑定技巧

关于页面传值的方法,引发了很多讨论。本文总结了asp.net跨页面传值的技巧。 AD: ASP.NET跨页面传值:使用QueryString变量 Que...
  • lhy2199
  • lhy2199
  • 2012年05月22日 15:44
  • 1889

Gridview技巧6

前台页面:一个gridview,4个button.分别为:前一页,下一页,尾页,首页cs代码:using System.Data.SqlClient;public partial class Defa...
  • myqq95
  • myqq95
  • 2008年06月13日 18:18
  • 162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GridView一点技巧
举报原因:
原因补充:

(最多只允许输入30个字)