【问题标题】:ASP.NET CheckBox in ListViewListView 中的 ASP.NET 复选框
【发布时间】:2013-07-11 21:44:03
【问题描述】:

所以我有一个列表视图,里面有一个复选框和两个单选按钮。复选框控制单选按钮的禁用或启用位置。

如您所见,我让它适用于列表中的第一项 (items[0]),但如何让它适用于列表视图中的其余行?

谢谢

System.Web.UI.WebControls.ListView lv2 = ListView1.Items[0].FindControl("ListView2") as System.Web.UI.WebControls.ListView;
            CheckBox cb = lv2.Items[0].FindControl("ChargedCB") as CheckBox;
            RadioButton acceptRB = lv2.Items[0].FindControl("AcceptedRB") as RadioButton;
            RadioButton disputedRB = lv2.Items[0].FindControl("DisputedRB") as RadioButton;

            if (cb.Checked == false)
            {
                acceptRB.Checked = false;
                disputedRB.Checked = false;

                acceptRB.Enabled = false;
                disputedRB.Enabled = false;
            }
            else 
            {
                acceptRB.Enabled = true;
                disputedRB.Enabled = true;
            }

【问题讨论】:

  • 但是这里看起来你有listview1,里面第一行有lv2,lv2里面有复选框,每行有2个单选按钮?所以你想在 listview1 中执行这个 foreach 嵌套的 listview lv2 吗?

标签: asp.net listview checkbox


【解决方案1】:
for(int k = 0;k<ListView1.Items.Count;k++)
{
   System.Web.UI.WebControls.ListView lv2 = ListView1.Items[k].FindControl("ListView2") as System.Web.UI.WebControls.ListView;

for(int i = 0; i<lv2.Items.Count;i++)
    {
                    CheckBox cb = lv2.Items[i].FindControl("ChargedCB") as CheckBox;
                    RadioButton acceptRB = lv2.Items[i].FindControl("AcceptedRB") as RadioButton;
                    RadioButton disputedRB = lv2.Items[i].FindControl("DisputedRB") as RadioButton;

                    if (cb.Checked == false)
                    {
                        acceptRB.Checked = false;
                        disputedRB.Checked = false;

                        acceptRB.Enabled = false;
                        disputedRB.Enabled = false;
                    }
                    else 
                    {
                        acceptRB.Enabled = true;
                        disputedRB.Enabled = true;
                    }
    }
}

【讨论】:

  • 不起作用。在第二个循环中找不到 lv2 并且 .Length 也无法识别。
  • 第一个,用 Count 替换 Length !你需要尝试一下:)。第二:请详细说明您的列表视图 ListView1 和 ListView2 的结构,因为我提到了 2 种方式,每种方式都适用于不同的结构。你只有一个 ListView2 还是在 ListView1 的每一行都有一个“ListView2”?
  • 我在列表视图中有一个列表视图。因此,对于 listview1 中的每一行,都有一个 listview 2 行。在 listview 2 里面有复选框和单选按钮。
  • 您需要我描述的第二种方法,我将删除第一种方法。如果您有任何例外情况,请申请并更新我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2011-02-10
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多