获取用户控件上数据绑定列表控件的选定索引



我有一个位于用户控件上的radiobuttonlist。此用户控件位于父用户控件的转发器中,而该用户控件位于带有提交按钮的页面上。

这样的东西:

<page>
<UserControl1>
  <Repeater>
    <UserControl2>
      <radiobuttonlist>
    </UserControl2>
  </Repeater>
</UserControl1>
<Submit button />
</page>

CCD_ 2被动态地填充在CCD_ 3的代码后面。问题是,当我提交表单时,我需要访问radiobuttonlistSelectedValue,而该值总是空的。即使我首先激发填充radiobuttonlist的方法,RBL的selectedvalue也是空的。我在RBL上有一个SelectedIndexChanged事件处理程序,但它从不启动。

当我导致父页回发时,我需要做什么才能获得radiobuttonlistSelectedValue

我让它工作起来了。我想这是一个操作顺序的问题。修复方法是在UserControl2的OnInit()中动态声明单选按钮列表的事件处理程序。

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e);
    rblOptions.SelectedIndexChanged += new EventHandler(ctrlOptions_SelectedIndexChanged);
} 

一旦我这样做了,即使我在回发时重新实例化UserControl,事件也开始启动。由于事件正在启动,我可以获得所选索引,而无需将其保持在ViewState中。

发布数据时,会重新绑定数据,以便擦除所选事件或值。

尝试在您的Page_Load(用户控制)中使用此代码

If(! IsPostBack)
{
   //You build RadioButtonList
}

并使用ViewState、EnableViewState="true" 持久化您的数据

相关内容

最新更新