无尽的控件-GridView行单击与双击
2012-04-26 22:47
351 查看
本次是 无尽的控件-GridView行单击与双击的实现
思路是如何呢? 其实就是给tr赋值onclick跟ondblclick而已
话不多说 看代码
后台代码如下
目前实现的是 行单击 走后台事件 双击 执行js脚本 可以根据需求自行修改
下载地址
思路是如何呢? 其实就是给tr赋值onclick跟ondblclick而已
话不多说 看代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>GridView单击与双击事件</title> <script language="javascript" type="text/javascript" > var dbl_click = false; </script> <style type="text/css"> *{font-size:12px} </style> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server" Width="100%" RowStyle-HorizontalAlign="Center" RowStyle-Height="25" > <Columns> <asp:BoundField HeaderText="学号" DataField="id" /> <asp:BoundField HeaderText="姓名" DataField="name" /> <asp:BoundField HeaderText="性别" DataField="sex" /> <asp:BoundField HeaderText="年龄" DataField="age" /> <asp:BoundField HeaderText="密码" DataField="pwd" /> <asp:BoundField HeaderText="入学时间" DataField="regtime" DataFormatString="{0:D}" /> <asp:BoundField HeaderText="籍贯" DataField="address" /> <asp:TemplateField Visible="false"> <HeaderTemplate>操作</HeaderTemplate> <ItemTemplate> <asp:LinkButton runat="server" ID="l1" Text="单击" CommandArgument='<%#Eval("id")%>' OnCommand="command_del"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
后台代码如下
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { onload(); } } protected void onload() { GridView1.DataSource = new T().Get(); GridView1.DataBind(); } protected void command_del(object o, CommandEventArgs e) { string id = e.CommandArgument.ToString(); MessageBox.show(this, "您单击了ID=" + id + "的这条数据"); setColors(id); } protected override void Render(HtmlTextWriter writer) { foreach (GridViewRow row in GridView1.Rows) { if (row.RowType == DataControlRowType.DataRow) { int rowIndex = row.RowIndex; string id = row.Cells[0].Text; string onclick= String.Format("javascript:setTimeout(\"if(dbl_click){{dbl_click=false;}}else{{{0}}};\", 1000*0.3);", "__doPostBack('GridView1$ctl" + (rowIndex + 2).ToString().PadLeft(2,'0') + "$l1','')"); row.Attributes["onclick"] =onclick; // 双击,设置 dbl_click=true,以取消单击响应 string ondblclick = String.Format("javascript:dbl_click=true;alert('您双击了ID={0}的这条数据');", id); row.Attributes["ondblclick"] = ondblclick; row.Attributes["style"] = "cursor:pointer"; } } base.Render(writer); } protected void setColors(string id) { string ids = ""; for (int i = 0; i < GridView1.Rows.Count; i++) { GridView1.Rows[i].BackColor = System.Drawing.Color.White; ids = GridView1.Rows[i].Cells[0].Text; if (ids == id) { GridView1.Rows[i].BackColor = System.Drawing.Color.FromName("#D6F1F8"); } } }
目前实现的是 行单击 走后台事件 双击 执行js脚本 可以根据需求自行修改
下载地址
相关文章推荐
- 支持行单击、双击事件的GridView和DataList控件(译)
- GridView控件(六)—数据行响应鼠标的单击和双击事件
- 扩展GridView控件(6) - 响应行的单击事件和双击事件
- 扩展GridView控件(6) - 响应行的单击事件和双击事件
- 上接扩展GridView控件(6) - 响应行的单击事件和双击事件
- 扩展GridView控件(6) - 响应行的单击事件和双击事件
- 扩展GridView控件(6) - 响应行的单击事件和双击事件
- 扩展GridView控件(6) - 响应行的单击事件和双击事件
- GridView 行单击与双击事件2
- 单击gridview控件外部的一个按钮,获取gridview中的一列数据,获得的数据插入到另一个表中
- 关于android 控件的单击双击以及长按的问题
- 采用Jquery,在table上实现对行的单击、双击、返回选中行数据的功能,可作为GridView控制客户端的扩展
- gridview鼠标双击事件(跳转至新页面并传值)单击获取值
- 控件的单击事件和双击事件
- ios中控件同时响应单击和双击事件以及多击事件
- GridView控件 单击TemplateField中的Button控件时,获取该行的行号(行索引)
- 采用Jquery,在table上实现对行的单击、双击、返回选中行数据的功能,可作为GridView控制客户端的扩展
- Dev的Gridview控件,实现 每一行行的双击的事件
- 给GridView添加【单击】、【双击】事件的解决方案
- ASPxGridView1单击,双击事件