GridView点击行触发SelectedIndexChanged事件

1、在<% @Page ...... %>指令中添加 EnableEventValidation="false"

2、在RowDataBound事件中添加

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
        switch (e.Row.RowType)
        {
            case DataControlRowType.DataRow:
                e.Row.Attributes["style"] = "cursor:hand";
                #region   //点击行触发SelectedIndexChanged事件
                PostBackOptions myPostBackOptions = new PostBackOptions(this);
                myPostBackOptions.AutoPostBack = false;
                myPostBackOptions.PerformValidation = false;
                myPostBackOptions.RequiresJavaScriptProtocol = true; //加入javascript:头
                String evt = Page.ClientScript.GetPostBackClientHyperlink(sender as GridView, "Select$" + e.Row.RowIndex.ToString());
                e.Row.Attributes.Add("onclick", evt);
                #endregion
                break;
        }

    }

3、在第一二步之后就可以在SelectedIndexChanging和SelectedIndexChanged事件中添加处理逻辑了。

转自:http://xieycms.blog.163.com/blog/static/281213902010123105350751/

时间: 2024-12-14 07:57:26

GridView点击行触发SelectedIndexChanged事件的相关文章

[转]如何在数据绑定时不让combox控件触发SelectedIndexChanged事件

this.cboVendor.SelectedIndexChanged -= new System.EventHandler(this.cboVendor_SelectedIndexChanged); cboVendor.DataSource = myClass.RunQueryCmd(strSqlCmd); cboVendor.DisplayMember = "SupplierCode"; //添加事件 this.cboVendor.SelectedIndexChanged += n

DropDownList 控件不能触发SelectedIndexChanged 事件

相信DropDownList 控件不能触发SelectedIndexChanged 事件已经不是什么新鲜事情了,原因也无外乎以下几种: 1.DropDownList 控件的属性 AutoPostBack="True" 没有写: 2.DropDownList 控件的数据绑定没有放在if (!Page.IsPostBack) 里面: 3.DropDownList 控件选定项的value 值只有在发生变化时,才将信息发往服务器: 有人问 (1)AutoPostBack="True&

Winform ComboBox 绑定数据源 触发SelectedIndexChanged事件 处理办法

最近寫Winform程式,發現Winform中的ComboBox和Web中的Dropdown相差很大,在ComboBox 绑定数据源 會触发SelectedIndexChanged事件,很困擾,查找了資料,處理方法大體分為三種 1.添加一个标记位,在绑定前设置为false,绑定完成后设置回true(個人覺得用起來的很奇怪) void BindComboBox() { flag=false; ComboxBox1.ValueMember="ValueColumn"; ComboxBox1

点击button触发onclick事件判空后依旧自动跳转

这是一个前端的问题. 其中判断字符串为空的脚本代码是这样的: var remark = $("#Remark").val(); //判空.注意:var reg = /空格/g; var reg = / /g; var tmp = remark.replace(reg, ""); 先把所有空格去除,通过判断tmp是否为空来判断文本框是否为空. 问题是这样的:我点击button后,触发js脚本判断input框是否为空,如果为空就提示出错.否则提交表单. 结果是这样的:我

点击超链接触发js事件

1.<a href ="#" onclick ="js_method()"> 这个方法中的#号代表top,所以点击之后会跳转到页面最顶端 2.<a href = "javascript:void(0);" onclick ="js_method()">文本</a> 这是最常用的方法.前面的void(0)返回undefined,地址不会发生跳转,后面的onClick负责执行js函数. 这样写还

gridview 单击行时如何让SelectedIndexChanging事件响应

在gridview控件上单击行的时候,是不触发SelectedIndexChanging事件的,那么想要单击时触发SelectedIndexChanging事件时怎么做呢? 我是这样做的: 在gridview的行绑定事件 RowDataBound(object sender, GridViewRowEventArgs e) 中写入 if (e.Row.RowType == DataControlRowType.DataRow)        {            e.Row.Attribut

VS2010 winform开发笔记---combox的SelectedIndexChanged事件及级联问题

DisplayMember绑定需要显示的数据表字段, 而ValueMember绑定需要获取选择的项的值. 然后通过 combo.SelectedValue就可以取得选中项的值了. DisplayMember会显示在你的下拉框中,ValueMember的值和下拉框显示的值一一对应,并不在下拉框显示的. 所对应的值就是一条记录里面 有标识列ID(唯一) 有显示的列(如名称,可重复)ValueMember 可以成为名称,也可成为ID但是一般来说都只绑定ID 这样好处理,也很方便识别,DisplayMe

屏蔽Enter触发的事件

无论是 <button type="button" onclick="console.log('123');">123</button> 还是 <a href="#"  onclick="console.log('123');">测试链接</a> 在点击并且触发完事件后,当我们继续按下enter键时.会不断的触发点击事件.解决方案如下: $(document).on('keydo

GridView中点击某行的任意位置就选中该行

GridView中点击某行的任意位置就选中该行 分类: 第一步:添加选择列 点击GridView右边小尖头,双击CommandField,选中"选择",添加,将起设置为不可见: 第二步:处理"ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证",在源文件中添加"enableEventValidation="false"": 第三步:在GridView的RowDataBound事件中增加以下代码: protec