【问题标题】:Why I cant get selected radio button from asp:RadioButtonList control?为什么我无法从 asp:RadioButtonList 控件中获取选定的单选按钮?
【发布时间】:2016-03-02 17:32:32
【问题描述】:

我生成单选按钮:

    foreach (string header in headers)
    {
        XMLHeaders.Visible = true;
        rdHeaders.Items.Add(header);
    }

这是 ASP 代码:

    <asp:Panel ID="XMLHeaders" runat="server" Visible="false" CssClass="group">
    <asp:RadioButtonList ID="rdHeaders" runat="server" RepeatLayout="Flow" RepeatDirection ="Vertical">
    </asp:RadioButtonList>
          <div class="row1" style="padding: 3px; text-align: left">
            <asp:Button Text="B" ID="btnDescColumn" runat="server" OnClick="SetDescPoint" CausesValidation="False"/>
        </div> 
</asp:Panel>

它在视图中的外观如下:

When B button is selected post back occured and this function is fired:

    protected void SetDescPoint(object sender, EventArgs e)
    {
        var columnDesc = rdHeaders.SelectedItem;
    }

在上面的事件处理程序中,我尝试获取选定的单选按钮,但得到null

如何获得选中的单选按钮?

【问题讨论】:

  • 您是否在页面加载事件中生成单选按钮项目?您可能只需要在 If !Ispostback 检查中为每个单选按钮包装。
  • 我是 asp 新手,你能举个例子吗?
  • 删除 asp:Panel 看看是否有什么不同。

标签: asp.net


【解决方案1】:

在您生成单选按钮的页面加载事件中,使用 Page.IsPostBack 检查包装它,如下所示:

if (!IsPostBack)
{
    foreach (string header in headers)
    {
        XMLHeaders.Visible = true;
        rdHeaders.Items.Add(header);
    }
}

这将确保您的单选按钮列表不会在您的页面回发时重新生成。最有可能发生的是回发正在重建单选按钮列表,如果您禁用了视图状态,它将清除任何先前的选择。

【讨论】:

  • 但在视图中我看到了之前的选择,即在回发调用之前所做的选择
  • 您能否在后面发布更多代码,以便我们更全面地了解正在发生的事情?
猜你喜欢
  • 2018-02-09
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 2014-03-21
  • 2015-03-09
相关资源
最近更新 更多