利用sender的Parent获取GridView中的当前行

看论坛里很多人都在问如果获取GridView当行的问题,
当然解决这个问题有好几个方法:
1 加RowCommand事件中,判断请求的发出按钮控件名,根据传递的参数来获取当前行中我们需要的参数。
2 GridView设置datakeynames方式。
……
以上方法实现不再累赘。

今天给大家介绍一种最方便,也最满足日常思维的好办法:
采用控件事件的sender的Parent来获取cell对象,再取cell的上级对象,也就是row对象了。简单吧!

示例如下:
在第三列中放了一个模板列,放入了一个CheckBox,想法是在选中时,设置第四列Lable状态标识为“T”,取消选中时,第四列Lable状态标识清空

利用sender的Parent获取GridView中的当前行

CheckBox直接在模板列中双击,加入以下代码即可。

利用sender的Parent获取GridView中的当前行    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
利用sender的Parent获取GridView中的当前行利用sender的Parent获取GridView中的当前行    
利用sender的Parent获取GridView中的当前行{
利用sender的Parent获取GridView中的当前行        CheckBox chk = (CheckBox) sender;
利用sender的Parent获取GridView中的当前行
利用sender的Parent获取GridView中的当前行        DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;
利用sender的Parent获取GridView中的当前行        GridViewRow gvr = (GridViewRow)dcf.Parent;

利用sender的Parent获取GridView中的当前行
利用sender的Parent获取GridView中的当前行        if (chk.Checked)
利用sender的Parent获取GridView中的当前行利用sender的Parent获取GridView中的当前行        利用sender的Parent获取GridView中的当前行{
利用sender的Parent获取GridView中的当前行            Label lab = (Label)gvr.Cells[3].FindControl("Label1");
利用sender的Parent获取GridView中的当前行            lab.Text = "T";
利用sender的Parent获取GridView中的当前行        }
利用sender的Parent获取GridView中的当前行        else
利用sender的Parent获取GridView中的当前行利用sender的Parent获取GridView中的当前行        利用sender的Parent获取GridView中的当前行{
利用sender的Parent获取GridView中的当前行            Label lab = (Label)gvr.Cells[3].FindControl("Label1");
利用sender的Parent获取GridView中的当前行            lab.Text = "";
利用sender的Parent获取GridView中的当前行        }
利用sender的Parent获取GridView中的当前行    }
上一篇:SQL Server 2014 安装图解


下一篇:SUSE推出第一款针对ARM AArch64架构服务器优化的企业Linux商业发行版