C# 中继器绑定用户控件事件

C# 中继器绑定用户控件事件,c#,asp.net,repeater,C#,Asp.net,Repeater,我有一个带有转发器的web用户控件,在转发器内我有一个动态数量的单选按钮,在页面加载上,我试图调用转发器的onDataItemBound事件来查找单选按钮,并将oncheckedchanged事件绑定到我代码中的一个方法,但无法使其工作,以下是我的代码: protected void Page_Load(object sender, EventArgs e) { Repeater_Select.ItemDataBound += Repeater_Select_OnItemDataBoun

我有一个带有转发器的web用户控件,在转发器内我有一个动态数量的单选按钮,在页面加载上,我试图调用转发器的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_加载之前激发

希望这将帮助您-@nsgocev使用类似于绑定事件的方法得到相同的结果。我的断点在一侧的oncheckedchange单选按钮从未被点击。