我有一个网格视图,其中每一行(只有 1 列)有 1 个单选按钮、2 个下拉菜单和 1 个单选按钮列表。
最初,我遇到了将单选按钮选择限制为一个的问题。但后来我通过使用下面的代码实现了。
selectedRadio = (RadioButton)sender.Text;
foreach (DataListItem dlItem in datalist.Items)
{
GridView grid = (GridView)dlItem.FindControl("gvList");
if (grid != null)
{
foreach (GridViewRow gridRow in grid.Rows)
{
RadioButton rdo = gridRow.FindControl("radio") as RadioButton;
string radioname = rdo.Text;
if (selectedRadio == radioname)
{
if (dummyarray.Contains(selectedRadio))
{
dummyarray.Remove(radioname);
rdo.Checked = false;
}
/* 检查新选择 */
else
{
if (!dummyarray.Contains(selectedRadio))
{
dummyarray.Add(radioname);
}
rdo.Checked = true;
}
}
else
{
rdo.Checked = false;
}
}
}
}
作为存储在 dummyarray 中的先前选择的值(它具有 ViewState 属性),它将取消选中该单选按钮并检查新的单选按钮。
现在的问题是在检查新的单选按钮之后。并在选择其关联下拉菜单时,会发生回发,并且当前值存储在虚拟数组中。它再次取消选择。
我再次未能满足我的要求。