转发器绑定用户控件事件

本文关键字:事件 控件 用户 绑定 转发器 | 更新日期: 2023-09-27 18:17:20

我有一个带有中继器的 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之前开火