我有一个gridview,其中每行(只有1列)有1个radiobutton,2个下拉列表和1个radiobuttonlist。
最初我遇到了将放射性物质选择限制在一个问题的问题。但后来我使用下面的代码实现了。
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属性),它将取消选中该radiobutton并检查新的。
现在问题是在检查新的无线电按钮之后。并且在选择其关联下拉列表时,会发生回发,并且当前值存储在虚拟数组中。它再次无法选择。
我再次失败了。