繁体   English   中英

中继器绑定用户控制事件

[英]Repeater bind user control event

我有一个带有转发器的Web用户控件,并且在转发器内部我有一个动态的单选按钮,在page_load上,我试图调用转发器的onDataItemBound事件以查找单选按钮并将oncheckedchanged事件绑定到我的代码中的方法,但是无法正常工作,这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    Repeater_Select.ItemDataBound += Repeater_Select_OnItemDataBound; 
}


protected void Repeater_Select_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        var customRbtn = (CustomRadioButton)e.Item.FindControl("RadioButton_Select");
        customRbtn.CheckedChanged += RadioButton_Select_OnCheckedChanged;
    }
}

我设法解决了我的问题,问题是我在此OnItemDataBound之前调用了另一个方法,该方法在转发器上调用了DataBind() ,因此我简单地颠倒了顺序, OnItemDataBound的调用放在其他方法之前,如下所示:

    protected void Page_Init(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindRadioOnChecked();
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GetFeaturePackData();
        }
    }

    private void BindRadioOnChecked()
    {
        foreach (RepeaterItem item in Repeater_Select.Items)
        {
            if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
            {
                CustomRadioButton customRbtn = (CustomRadioButton)item.FindControl("RadioButton_Select");
                customRbtn.CheckedChanged += RadioButton_Select_OnCheckedChanged;
            }
        }
    }

现在它在Page_Init内部,因此在Page_Load之前触发

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM