分享代码:自定义gridview添加行双击事件
节选自实际项目中的部分代码
- C# code
[ParseChildren(true)][PersistChildren(false)][ToolboxData("<{0}:GridViewPlus runat=server></{0}:GridViewPlus>")][ToolboxBitmap(typeof(GridView))]public class GridViewPlus : GridView { #region constructors public GridViewPlus() : base() { } public GridViewPlus(string pId) { this.ID = MyHelper.ToString(pId); } #endregion constructors public delegate void RowDblClickEventHandler(object sender, int RowIndex); public event RowDblClickEventHandler RowDblClick; protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.Load_RowDblClickEventHandler(); } protected virtual void OnRowDblClick(object sender, int RowIndex){ this.SelectedIndex = RowIndex; } private void Load_RowDblClickEventHandler() { string _EventTarget = MyHelper.ToString(this.Page.Request.Params["__EVENTTARGET"]); string[] _EventArguments = MyHelper.ToString(this.Page.Request.Params["__EVENTARGUMENT"]).Split('$'); string _EventName = MyHelper.ToString(_EventArguments[0]); if(_EventTarget == this.ID && _EventName == "RowDblClick") { int _index = MyHelper.ToInt(_EventArguments[1]); this.RowDblClick(this, _index); } } protected override void OnRowDataBound(GridViewRowEventArgs e) { GridViewRow _row = e.Row; string _index = MyHelper.ToString(_row.RowIndex); string _arg = "RowDblClick$" + _index; string _evt = this.Page.ClientScript.GetPostBackEventReference(this, _arg); _row.Attributes.Add("ondblclick", _evt); } }//endclass[解决办法]
谢谢楼主分享,不过最好做个简单的实例,上传到下载资源栏目,方便大家理解。
[解决办法]
- HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %><!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>无标题页</title></head><script language="javascript">function yourfunction(obj){ for(var i=0;i<22;i++) { document.getElementById(i).style.backgroundColor="#400000"; } document.getElementById(obj).style.backgroundColor="red"; } function yourfunction2(obj){ alert(obj); } </script><body> <form runat="server"> <div> <asp:GridView runat="server" AutoGenerateColumns="False" DataKeyNames="au_id" DataSourceID="SqlDataSource1" OnRowCreated="GridView1_RowDataBound" EnableSortingAndPagingCallbacks="True" > <Columns> <asp:BoundField DataField="au_id" HeaderText="au_id" ReadOnly="True" SortExpression="au_id" /> <asp:BoundField DataField="au_lname" HeaderText="au_lname" SortExpression="au_lname" /> <asp:BoundField DataField="au_fname" HeaderText="au_fname" SortExpression="au_fname" /> <asp:BoundField DataField="phone" HeaderText="phone" SortExpression="phone" /> <asp:BoundField DataField="address" HeaderText="address" SortExpression="address" /> <asp:BoundField DataField="city" HeaderText="city" SortExpression="city" /> <asp:BoundField DataField="state" HeaderText="state" SortExpression="state" /> <asp:BoundField DataField="zip" HeaderText="zip" SortExpression="zip" /> <asp:CheckBoxField DataField="contract" HeaderText="contract" SortExpression="contract" /> </Columns> <SelectedRowStyle BackColor="#400000" BorderStyle="Double" /> </asp:GridView> <asp:SqlDataSource runat="server" ConnectionString="<%$ ConnectionStrings:pubsConnectionString %>" SelectCommand="SELECT * FROM [authors]"></asp:SqlDataSource> </div> </form></body></html>
[解决办法]
支持开源,笑纳,谢楼主!
[解决办法]
GridView还有很多未知的有待于探索,Mark!
[解决办法]
- C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { for (int i = 0; i <= GridView1.Rows.Count; i++) { e.Row.Attributes.Add("onclick", "yourfunction(" +i+ ");"); e.Row.Attributes.Add("id",""+i+""); e.Row.Attributes.Add("ondblclick", "yourfunction2(" + i + ");"); } } }
[解决办法]
学习。
[解决办法]
...................................................
[解决办法]
学习……
[解决办法]
观赏代码成就
[解决办法]
支持一下!
[解决办法]
收藏。
[解决办法]
支持分享
[解决办法]
支持分享。。
[解决办法]
选自实际项目中的部分代码
[解决办法]
学习中....
[解决办法]
关注中
[解决办法]
内容存入剪贴板
[解决办法]
[解决办法]
谢谢分享,学习了!!!
[解决办法]
学习学习
[解决办法]
learning......
[解决办法]
well...
[解决办法]
谢谢分享,学习学习
[解决办法]
好东西呀 谢谢分享
[解决办法]
支持下 多谢分享
[解决办法]
支持开源,
[解决办法]
UP~~~
[解决办法]
谢谢,楼主.我很受益
[解决办法]
学习!分享
------解决方案--------------------
谢谢,楼主
[解决办法]
谢谢楼主!
[解决办法]
[解决办法]
谢谢楼主
[解决办法]
谢谢楼主!
[解决办法]
good!
[解决办法]
[解决办法]
感谢楼主分享!
[解决办法]
进来学习了。
[解决办法]
学习了
[解决办法]
此帖为何推荐?
[解决办法]
楼上那些 回帖 感谢楼主分享的 兄弟们,
楼主发的代码亮点在哪?看懂的,能明示下否?
[解决办法]
不错。。
[解决办法]
重写GRIDVIEW 实现 谢谢分享
[解决办法]
MyHelper
这个是什么东西?
[解决办法]
真难弄啊 不是一个行业就是差远了
[解决办法]
纯顶!
[解决办法]
学习!
[解决办法]
[解决办法]
强烈支持!!!
[解决办法]
支持,LZ解开了我几天的因惑
[解决办法]
强烈支持!!!
[解决办法]
学习。
[解决办法]
雄起,谢谢分享
[解决办法]
mark
[解决办法]
[解决办法]
谢谢分享,学习了!!!
[解决办法]
支持,定一下
[解决办法]
LZ精神可嘉
[解决办法]
学习了
------解决方案--------------------
看不懂啊
[解决办法]
大家的回复??yun
[解决办法]
这让我想起当年有人写了个GridView72绝技!
[解决办法]
Mark!
[解决办法]
牛人啊
[解决办法]
果断MARK,精品~
[解决办法]
果断MARK,精品~
[解决办法]
MARK
[解决办法]
学习了。。。
[解决办法]
MyHelper
这个类是什么?怎么没人回答捏
[解决办法]
学习了。。。
[解决办法]
没注释呀。
[解决办法]
谢谢分享
[解决办法]
顶一下。
[解决办法]
学习了....
[解决办法]
顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[解决办法]
应该不很全,要支持双击,很大一部分是浏览器端的处理吧。
[解决办法]
谢谢分享!~~~
[解决办法]
强顶一下!!
[解决办法]
good~~~
[解决办法]
支持你。
[解决办法]
学习,gridview还是有很多东西值得挖掘的
[解决办法]
学习。
[解决办法]
[解决办法]
学习了
[解决办法]
留个坑吧
[解决办法]
gaobudong