【问题标题】:ASP.NET CheckBox.Checked is always false in ListViewASP.NET CheckBox.Checked 在 ListView 中始终为 false
【发布时间】:2012-02-17 21:58:44
【问题描述】:

我有一个带有几个复选框的 ListView。但是如果我想知道复选框是否被选中,它总是错误的(即使我选中了它)。

这是我的 ListView 的代码

<asp:ListView ID="lvCompanies" runat="server" DataKeyNames="id" onitemdatabound="lvCompanies_ItemDataBound">
    <LayoutTemplate><ul><asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder></ul></LayoutTemplate>
    <ItemTemplate>                
        <li>
            <asp:CheckBox ID="cbCompany" CssClass="checkbox company-checkbox"  runat="server" />
            <%# Eval("Name") %>
        </li>
    </ItemTemplate>
</asp:ListView>  

这就是我尝试获取选中复选框的方式

    public List<Company> getSelectedItems()
    {
        foreach (ListViewDataItem dataItem in lvCompanies.Items)
        {
            bool isChecked = ((CheckBox)dataItem.FindControl("cbCompany")).Checked;

        }
    }

你知道为什么我的复选框总是 Checked = false 吗?

非常感谢,

文森特

【问题讨论】:

  • 您在哪个方法/事件处理程序中调用方法 getSelectedItems ?

标签: asp.net listview checkbox


【解决方案1】:

检查您是否在 (!Page.IsPostBack) 中绑定了 lvCompanies

【讨论】:

  • getSelectedItems() 函数是如何调用的?
  • 如果您想保持复选框的状态,请点击此链接evonet.com.au/maintaining-checkbox-state-in-a-listview
  • 当你点击一个按钮(在列表视图之外)这个函数被调用
  • @Vinzcent 如果这是正确答案,则通过选中复选标记进行标记。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-16
  • 2012-03-29
相关资源
最近更新 更多