扩展GridView控件: 响应行的单击事件和双击事件,并在服务端处理 使用方法(设置属性): BoundRowClickCommandName - 行的单击事件需要绑定的CommandName BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName

GridView既强大又好用。为了让它更强大、更好用,我们来写一个继承自GridView的控件。



扩展GridView控件(6) - 响应行的单击事件和双击事件



作者:webabcd



/*正式版的实现 开始*/

介绍

扩展GridView控件:

响应行的单击事件和双击事件,并在服务端处理


使用方法(设置属性):

BoundRowClickCommandName - 行的单击事件需要绑定的CommandName

BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName



关键代码

单击

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Collections.Generic;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Text;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI.WebControls;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlnamespace YYControls.SmartGridViewFunction

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    /// 扩展功能:响应行的单击事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    public class RowClickFunction : ExtendFunction

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        List<string> _rowClickButtonUniqueIdList = new List<string>();

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 构造函数

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        public RowClickFunction()

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            : base()

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 构造函数

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// <param name="sgv">SmartGridView对象</param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        public RowClickFunction(SmartGridView sgv)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            : base(sgv)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 扩展功能的实现

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        protected override void Execute()

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            this._sgv.RowDataBoundCell += new SmartGridView.RowDataBoundCellHandler(_sgv_RowDataBoundCell);

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            this._sgv.RenderBegin += new SmartGridView.RenderBeginHandler(_sgv_RenderBegin);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// RowDataBoundCell

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// <param name="sender"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// <param name="gvtc"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        void _sgv_RowDataBoundCell(object sender, GridViewTableCell gvtc)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            TableCell tc = gvtc.TableCell;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            foreach (Control c in tc.Controls)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                IButtonControl ibc = c as IButtonControl;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                if (ibc != null && this._sgv.BoundRowClickCommandName == ibc.CommandName)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    // 300毫秒后响应单击事件的脚本(避免和双击事件冲突)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    string js = this._sgv.Page.ClientScript.GetPostBackClientHyperlink(c, "");

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    js = js.Insert(11, "setTimeout(\"");

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    js += "\", 300)";

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    GridViewRow gvr = tc.Parent as GridViewRow;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    Helper.Common.SetAttribute(gvr, "onclick", js, AttributeValuePosition.Last);

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    _rowClickButtonUniqueIdList.Add(c.UniqueID);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// RenderBegin

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// <param name="sender"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// <param name="writer"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        void _sgv_RenderBegin(object sender, HtmlTextWriter writer)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            foreach (string uniqueId in this._rowClickButtonUniqueIdList)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                // 注册回发或回调数据以进行验证

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                this._sgv.Page.ClientScript.RegisterForEventValidation(uniqueId);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113}

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

双击

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Collections.Generic;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Text;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI.WebControls;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlnamespace YYControls.SmartGridViewFunction

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    /// 扩展功能:响应行的双击事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    public class RowDoubleClickFunction : ExtendFunction

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        List<string> _rowDoubleClickButtonUniqueIdList = new List<string>();

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 构造函数

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        public RowDoubleClickFunction()

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            : base()

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 构造函数

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// <param name="sgv">SmartGridView对象</param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        public RowDoubleClickFunction(SmartGridView sgv)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            : base(sgv)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 扩展功能的实现

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        protected override void Execute()

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            this._sgv.RowDataBoundCell += new SmartGridView.RowDataBoundCellHandler(_sgv_RowDataBoundCell);

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            this._sgv.RenderBegin += new SmartGridView.RenderBeginHandler(_sgv_RenderBegin);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// RowDataBoundCell

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// <param name="sender"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// <param name="gvtc"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        void _sgv_RowDataBoundCell(object sender, GridViewTableCell gvtc)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            TableCell tc = gvtc.TableCell;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            foreach (Control c in tc.Controls)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                IButtonControl ibc = c as IButtonControl;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                if (ibc != null && this._sgv.BoundRowDoubleClickCommandName == ibc.CommandName)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    // 响应双击事件的脚本

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    string js = this._sgv.Page.ClientScript.GetPostBackClientHyperlink(c, "");

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    GridViewRow gvr = tc.Parent as GridViewRow;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    Helper.Common.SetAttribute(gvr, "ondblclick", js, AttributeValuePosition.Last);

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    _rowDoubleClickButtonUniqueIdList.Add(c.UniqueID);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// RenderBegin

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// <param name="sender"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        /// <param name="writer"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        void _sgv_RenderBegin(object sender, HtmlTextWriter writer)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            foreach (string uniqueId in this._rowDoubleClickButtonUniqueIdList)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                // 注册回发或回调数据以进行验证

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                this._sgv.Page.ClientScript.RegisterForEventValidation(uniqueId);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113}

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

/*正式版的实现 结束*/


/*测试版的实现 开始*/

介绍

为了让GridView的数据行可以响应鼠标的单击和双击事件,一般我们会在GridView的RowDataBound事件中给<tr>加上客户端代码,为了简化这个步骤,我们来扩展一下它。



控件开发

1、新建一个继承自GridView的类。

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10/**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14/// 继承自GridView

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113/// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html[ToolboxData(@"<{0}:SmartGridView runat='server'></{0}:SmartGridView>")]

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlpublic class SmartGridView : GridView

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113}

2、加两个属性,分别是单击行事件所对应的按钮的ID和双击行事件所对应的按钮的ID

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        private string _rowClickButtonID;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 单击行事件所对应的按钮的ID

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        [Description("单击行事件所对应的按钮的ID"), DefaultValue(""), Category("扩展")]

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        public virtual string RowClickButtonID

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            get 扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{ return _rowClickButtonID; }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            set 扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{ _rowClickButtonID = value; }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        private string _rowDoubleClickButtonID;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// 双击行事件所对应的按钮的ID

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        [Description("双击行事件所对应的按钮的ID"), DefaultValue(""), Category("扩展")]

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        public virtual string RowDoubleClickButtonID

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            get 扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{ return _rowDoubleClickButtonID; }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            set 扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{ _rowDoubleClickButtonID = value; }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        }

3、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Collections.Generic;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Text;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlnamespace YYControls.SmartGridView

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    /// javascript

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    public class JavaScriptConstant

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        internal const string jsClickAndDoubleClick = @"<script type=""text/javascript"">

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        //<![CDATA[

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        var isDoubleClick = false;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        function yy_RowClick(id)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        {

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            setTimeout(""yy_RowClickTimeout('""+id+""')"", 300);

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        function yy_RowClickTimeout(id)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        {

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            if (isDoubleClick == false)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            {

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                // 执行ID所指按钮的click事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                document.getElementById(id).click();

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            isDoubleClick = true;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        function yy_RowDoubleClick(id)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        {

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            if (isDoubleClick == true)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            {

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                // 执行ID所指按钮的click事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                document.getElementById(id).click();

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            isDoubleClick = true;

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        //]]>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        </script>";

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113}

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

4、重写OnPreRender方法,注册上面那段客户端脚本

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// OnPreRender

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        /// <param name="e"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        protected override void OnPreRender(EventArgs e)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            base.OnPreRender(e);

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            if (!String.IsNullOrEmpty(RowClickButtonID) || !String.IsNullOrEmpty(RowDoubleClickButtonID))

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                if (!Page.ClientScript.IsClientScriptBlockRegistered("jsClickAndDoubleClick"))

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    Page.ClientScript.RegisterClientScriptBlock(

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                        this.GetType(),

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                        "jsClickAndDoubleClick", JavaScriptConstant.jsClickAndDoubleClick

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                        );

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

5、重写OnRowDataBound以实现数据行响应鼠标的单击和双击事件的功能。主要是给<tr>加上客户端代码,用来调用某个按钮的click事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        /**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// OnRowDataBound

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        /// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        /// <param name="e"></param>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        protected override void OnRowDataBound(GridViewRowEventArgs e)

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            if (e.Row.RowType == DataControlRowType.DataRow)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                if (!String.IsNullOrEmpty(RowClickButtonID) || !String.IsNullOrEmpty(RowDoubleClickButtonID))

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    // GridViewRow的每个TableCell

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                    foreach (TableCell tc in e.Row.Cells)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                        // TableCell里的每个Control

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                        foreach (Control c in tc.Controls)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                            // 如果控件继承自接口IButtonControl

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                            if (c.GetType().GetInterface("IButtonControl") != null && c.GetType().GetInterface("IButtonControl").Equals(typeof(IButtonControl)))

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                            扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                if (!String.IsNullOrEmpty(RowClickButtonID))

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                                扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                    // 该按钮的ID等于单击行所对应的按钮ID

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                    if (c.ID == RowClickButtonID)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                                    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                        // 增加行的单击事件,调用客户端脚本,根据所对应按钮的ID执行所对应按钮的click事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                        e.Row.Attributes.Add("onclick", "javascript:yy_RowClick('" + c.ClientID + "')");

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                                    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                                }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                if (!String.IsNullOrEmpty(RowDoubleClickButtonID))

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                                扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                    // 该按钮的ID等于双击行所对应的按钮ID

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                    if (c.ID == RowDoubleClickButtonID)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13                                    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                        // 增加行的双击事件,调用客户端脚本,根据所对应按钮的ID执行所对应按钮的click事件

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14                                        e.Row.Attributes.Add("ondblclick", "javascript:yy_RowDoubleClick('" + c.ClientID + "')");

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                                    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                                }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15                }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15            }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            base.OnRowDataBound(e);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_html


控件使用

添加这个控件到工具箱里,然后拖拽到webform上,要实现行的单击事件则设置RowClickButtonID为行单击事件所对应的按钮的ID,要实现行的双击事件则设置RowDoubleClickButtonID为行双击事件所对应的按钮的ID。

ObjData.cs

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Data;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Configuration;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.Security;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI.WebControls;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI.WebControls.WebParts;

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.Web.UI.HtmlControls;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlusing System.ComponentModel;

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10/**//// <summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14/// OjbData 的摘要说明

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113/// </summary>

扩展GridView控件(6) - 响应行的单击事件和双击事件_htmlpublic class OjbData

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    public OjbData()

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        //

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        // TODO: 在此处添加构造函数逻辑

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        //

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    [DataObjectMethod(DataObjectMethodType.Select, true)]

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14    public DataTable Select()

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13    扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        DataTable dt = new DataTable();

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        dt.Columns.Add("no", typeof(string));

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        dt.Columns.Add("name", typeof(string));

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        for (int i = 0; i < 30; i++)

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_12扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_13        扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11{

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            DataRow dr = dt.NewRow();

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            dr[0] = "no" + i.ToString().PadLeft(2, '0');

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            dr[1] = "name" + i.ToString().PadLeft(2, '0');

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14            dt.Rows.Add(dr);

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15        }

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_14        return dt;

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_15    }

扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_113}

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

Default.aspx

扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_09扩展GridView控件(6) - 响应行的单击事件和双击事件_控件_10<%扩展GridView控件(6) - 响应行的单击事件和双击事件_双击事件_11@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html

扩展GridView控件(6) - 响应行的单击事件和双击事件_html<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

扩展GridView控件(6) - 响应行的单击事件和双击事件_html<html xmlns="http://www.w3.org/1999/xhtml">

扩展GridView控件(6) - 响应行的单击事件和双击事件_html<head runat="server">

扩展GridView控件(6) - 响应行的单击事件和双击事件_html    <title>SmartGridView测试</title>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html</head>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html<body>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html    <form id="form1" runat="server">

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        <yyc:SmartGridView ID="SmartGridView1" runat="server" AutoGenerateColumns="False"

扩展GridView控件(6) - 响应行的单击事件和双击事件_html            DataSourceID="ObjectDataSource1" RowClickButtonID="btnTestRowClick" RowDoubleClickButtonID="btnTestRowDoubleClick">

扩展GridView控件(6) - 响应行的单击事件和双击事件_html            <Columns>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle-Width="100px" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle-Width="100px" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle-Width="100px" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle-Width="100px" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:BoundField DataField="no" HeaderText="序号" SortExpression="no" ItemStyle-Width="100px" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:BoundField DataField="name" HeaderText="名称" SortExpression="name" ItemStyle-Width="100px" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                <asp:TemplateField>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                    <footerstyle cssclass="hidden" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                    <headerstyle cssclass="hidden" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                    <itemstyle cssclass="hidden" />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                    <itemtemplate>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                        <asp:Button id="btnTestRowClick" runat="server" CommandName="RowClick" CommandArgument='<%# Container.DataItemIndex %>' />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                        <asp:Button id="btnTestRowDoubleClick" runat="server" CommandName="RowDoubleClick" CommandArgument='<%# Container.DataItemIndex %>' />

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                    </itemtemplate>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html                </asp:TemplateField>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html            </Columns>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        </yyc:SmartGridView>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Select"

扩展GridView控件(6) - 响应行的单击事件和双击事件_html            TypeName="OjbData"></asp:ObjectDataSource>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html    </form>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html</body>

扩展GridView控件(6) - 响应行的单击事件和双击事件_html</html>

/*测试版的实现 结束*/


OK