首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2011-12-28 
分享代码:自定义gridview添加行双击事件节选自实际项目中的部分代码C# code[ParseChildren(true)][Persist

分享代码:自定义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 + ");");            }         }     }
[解决办法]
学习。
[解决办法]
...................................................
[解决办法]
学习……
[解决办法]
观赏代码成就
[解决办法]
支持一下!
[解决办法]
收藏。
[解决办法]
支持分享
[解决办法]
支持分享。。
[解决办法]
选自实际项目中的部分代码
[解决办法]
学习中....
[解决办法]
关注中
[解决办法]
内容存入剪贴板

[解决办法]
探讨
C# code

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int ……

[解决办法]
谢谢分享,学习了!!!
[解决办法]
学习学习
[解决办法]
learning......
[解决办法]
well...
[解决办法]
谢谢分享,学习学习
[解决办法]
好东西呀 谢谢分享
[解决办法]
支持下 多谢分享
[解决办法]
支持开源,
[解决办法]
UP~~~
[解决办法]
谢谢,楼主.我很受益
[解决办法]
学习!分享
------解决方案--------------------


谢谢,楼主
[解决办法]
谢谢楼主!
[解决办法]

探讨

C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0……

[解决办法]
谢谢楼主
[解决办法]
谢谢楼主!
[解决办法]
good!
[解决办法]
探讨

C# code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0……

[解决办法]
感谢楼主分享!
[解决办法]
进来学习了。
[解决办法]
学习了
[解决办法]
此帖为何推荐?
[解决办法]
楼上那些 回帖 感谢楼主分享的 兄弟们,

楼主发的代码亮点在哪?看懂的,能明示下否?
[解决办法]
不错。。
[解决办法]
重写GRIDVIEW 实现 谢谢分享
[解决办法]
MyHelper
这个是什么东西?
[解决办法]
真难弄啊 不是一个行业就是差远了
[解决办法]
纯顶!
[解决办法]
学习!
[解决办法]

[解决办法]
强烈支持!!!
[解决办法]
支持,LZ解开了我几天的因惑
[解决办法]
强烈支持!!!
[解决办法]
学习。
[解决办法]
雄起,谢谢分享
[解决办法]
mark
[解决办法]
探讨

楼上那些 回帖 感谢楼主分享的 兄弟们,

楼主发的代码亮点在哪?看懂的,能明示下否?

[解决办法]
谢谢分享,学习了!!!
[解决办法]
支持,定一下
[解决办法]
LZ精神可嘉
[解决办法]
学习了
------解决方案--------------------


看不懂啊
[解决办法]
大家的回复??yun
[解决办法]
这让我想起当年有人写了个GridView72绝技!
[解决办法]
Mark!
[解决办法]
牛人啊
[解决办法]
果断MARK,精品~
[解决办法]
果断MARK,精品~
[解决办法]
MARK
[解决办法]
学习了。。。
[解决办法]
MyHelper
这个类是什么?怎么没人回答捏
[解决办法]
学习了。。。
[解决办法]
没注释呀。
[解决办法]

谢谢分享
[解决办法]
顶一下。
[解决办法]
学习了....
[解决办法]
顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[解决办法]
应该不很全,要支持双击,很大一部分是浏览器端的处理吧。
[解决办法]
谢谢分享!~~~
[解决办法]
强顶一下!!
[解决办法]
good~~~
[解决办法]
支持你。
[解决办法]
学习,gridview还是有很多东西值得挖掘的
[解决办法]
学习。
[解决办法]

[解决办法]
学习了
[解决办法]
留个坑吧
[解决办法]
gaobudong

热点排行