GridViewRow可以任意位置单击引发事件的方法!

GridView 是 ASP.NET 2.0 中应用最为广泛一个控件,几乎所有的数据操作都需要它,正如我们平常所应用的,可以编辑、删除、选择等等,但如果客户有需要通过单击行而引发超链接或者进入行编辑状态时,我们该如何实现,这里介绍了一种方法来实现此功能。它将允许你通过点击行的任何一个位置而引发你所需要的事件。

首先为 GridView  填充数据
 private void BindData()
    {

        SqlConnection myConnection 
= new SqlConnection(ConnectionString);

        SqlCommand myCommand 
= new SqlCommand("SELECT * FROM Users", myConnection);

        SqlDataAdapter ad 
= new SqlDataAdapter(myCommand);

        DataSet ds 
= new DataSet();

        ad.Fill(ds);

        GridView1.DataSource 
= ds;

        GridView1.DataBind();

    }

接下来我们在 GridView_RowDataBound  事件中为 GridViewRow 赋予单击属性
  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        
string alertBox = "alert('";

        
if (e.Row.RowType == DataControlRowType.DataRow)
        {

            alertBox 
+= e.Row.RowIndex;

            alertBox 
+= "')";

            e.Row.Attributes.Add(
"onclick", alertBox);

        }

    }

好了,很简单的方法,希望对你有用!

posted on 2006-07-28 13:06 xh3 阅读(1418) 评论(5) 编辑 收藏

评论

#1楼  回复 引用   

但你这个只会在单击时触发弹出选中行时的数字~应该怎样让单击时触发编辑呢?
2006-07-30 15:13 | luca[未注册用户]

#2楼[楼主]  回复 引用 查看   

我的只是个示例,目的是帮你取到e.Row.RowIndex,只有得到这个值你才能判断点击的是哪一行,至于你说触发编辑,应当是在RowCommand里写的,记住,对于GridView,如果你的按钮或链接的CommandName是Edit,则你点击时会自动触发RowEditing事件,而你如果想使用自己的触发过程的话必须如上面所述,即先取得e.Row.RowIndex,然后再到RowCommand里写你自己的编辑过程。
2006-07-30 21:04 | xh3      

#3楼  回复 引用   

不错!
2006-12-08 17:35 | xixi[匿名][未注册用户]

#4楼  回复 引用   

hao!
2006-12-12 12:17 | okpo[未注册用户]

#5楼  回复 引用 查看   

在某行任意位置单击后,如何激发Gridview的SelectedIndexChanged事件?
2007-05-27 12:02 | 吴祝明      

导航

搜索

 
 

常用链接

文章档案(1)

积分与排名

  • 积分 - 86082
  • 排名 - 1184