事件处理程序中sender参数的用法

有很多控件生成的事件处理程序都带有一个object类型的参数sender,往往有大多数初学者不知道这个参数怎么用,其实这个参数从它的命名上就可以知道:它是整个事件处理程序的发起者,知道这一点做一些事情,往往就简单了,下面这个例子是选择gridview中的radiobutton(一般放在模板列中的radiobutton是不能实现只选择一个的)。

protected void rbtnSel_CheckedChanged(object sender, EventArgs e)
    {
         for (int i = 0; i < this.GridView1.Rows.Count; i++)
            {
                ((RadioButton)this.GridView1.Rows[i].FindControl("rbtnSel")).Checked = false; 
            }
            ((RadioButton)sender).Checked = true;
       
    } 
 当然,如果数据量大的话,刷新是让人受不了的。

所以还有一种方式(非原创)就是使用javascript。

function setRadio(nowRadio)
    {
        var myForm,objRadio;
        myForm=document.forms[0];
        for(var i=0;i<myForm.length;i++)
        {
            if(myForm.elements[i].type=="radio")
            {
                objRadio=myForm.elements[i];
                if(objRadio!=nowRadio && objRadio.name.indexOf("ctgenter")>-1 && objRadio.name.indexOf("rbtnstate")>-1)
                {
                    if(objRadio.checked)
                    {
                        objRadio.checked=false;
                    }
                }
            }
        }
    }
然后在服务器端添加radiobutton的属性就可以了:

protected void ctgenter_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            //给每个RadioButton1绑定setRadio事件
            try
            {
                ((RadioButton)e.Item.FindControl("rbtnstate")).Attributes.Add("onclick", "setRadio(this)");
            }
            catch (Exception)
            { }

        }
当然,sender的用法还有很多,大家可以留言交流。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值