当前位置: 代码迷 >> ASP.NET >> 分享代码:自定义gridview添加行双击事件解决方案
  详细解决方案

分享代码:自定义gridview添加行双击事件解决方案

热度:7084   发布时间:2013-02-26 00:00:00.0
分享代码:自定义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>
  相关解决方案