如何从对象发送者获取行索引,EventArgs e

时间:2017-10-05 16:36:11

标签: c# asp.net

我在asp.net页面上有一个DataList。在datalist的每一行,我有两个单选按钮(不是radiobuttonlist)。根据按下的单选按钮,它们在同一行上启用一些文本框并显示一些信息。两个单选按钮都绑定到同一个事件处理程序。

我的问题是,如何知道DataList的行号(索引)是按下单选按钮?

这是单选按钮事件处理程序的代码:

    protected void RadioButton_CheckedChanged(object sender, EventArgs e)
    {   
        try
        {               
            RadioButton radioBtn = (RadioButton)sender;     
            if (radioBtn.Checked == true)
            {
                switch (radioBtn.ID)
                {
                    case "RadioButton1":
                        //Enable some textboxes
                        //Show some info - Need to display the row number of the Datalist where the Radio buttons were pressed
                        break;

                    case "RadioButton2":
                        //Disable some texboxes
                        break;
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:3)

您可以使用NamingContainer获取父控件并获取其项目索引。

protected void RadioButton_CheckedChanged(object sender, EventArgs e)
{
    DataListItem item = (DataListItem)((RadioButtonList)sender).NamingContainer;

    Label1.Text = item.ItemIndex.ToString();
}