如何使单选按钮在列表视图中工作
How to make RadioButtons work in a Listview
我想让 RadioButtons 在 ListView 中工作。我在 ListView 中添加了一个 RadioButton 控件,并用一个 LinkButton 控件将其包装起来。我使用 LinkButton 是为了使用 ListView 的 ItemCommand 属性 从代码 Behind 更改 RadioButton 的状态。
<td>
<asp:LinkButton ID="LinkButton6" runat="server" CommandName="Driver">
<asp:RadioButton ID="SelectedDriver" runat="server" AutoPostBack="true" OnCheckedChanged="SelectedDriver_CheckedChanged" />
</asp:LinkButton></td>
为了能够使所有 radioButton 互斥,我将 ListView 中的所有 radioButton 重置为 false 然后我将调用事件的 RadioButton 设置为 true
这是隐藏代码中的方法:
protected void Drivers_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "Driver")
{
foreach (ListViewItem listItem in this.Drivers.Items)
{
(listItem.FindControl("SelectedDriver") as RadioButton).Checked = false;
}
(e.Item.FindControl("SelectedDriver") as RadioButton).Checked = true;
}
}
然而它并没有像我想要的那样工作。当我单击单选按钮时,它们会不断被选中 none,其中的 none 会被重置。为了让它工作,我必须在 radioButton 控件旁边添加一些文本,我必须单击不在 RadioButton 上的文本才能工作。如您所见,文本部分非常烦人。
任何人都可以帮助我知道我可以做些什么来让它按预期工作吗?或者有谁知道可行的解决方案。
谢谢
为了让 RadioButtons 按预期工作,我设置了 AutoPostBack = "true"
属性 OnCheckedChanged = "SelectedDriver_CheckedChanged"
我从后面的代码中执行了以下操作,一切正常
protected void SelectedDriver_CheckedChanged(object sender, EventArgs e)
{
RadioButton selectedButton = new RadioButton();
selectedButton = (RadioButton)sender;
foreach (ListViewItem listItem in this.Drivers.Items)
{
(listItem.FindControl("SelectedDriver") as RadioButton).Checked = false;
}
selectedButton.Checked = true;
}
我想让 RadioButtons 在 ListView 中工作。我在 ListView 中添加了一个 RadioButton 控件,并用一个 LinkButton 控件将其包装起来。我使用 LinkButton 是为了使用 ListView 的 ItemCommand 属性 从代码 Behind 更改 RadioButton 的状态。
<td>
<asp:LinkButton ID="LinkButton6" runat="server" CommandName="Driver">
<asp:RadioButton ID="SelectedDriver" runat="server" AutoPostBack="true" OnCheckedChanged="SelectedDriver_CheckedChanged" />
</asp:LinkButton></td>
为了能够使所有 radioButton 互斥,我将 ListView 中的所有 radioButton 重置为 false 然后我将调用事件的 RadioButton 设置为 true 这是隐藏代码中的方法:
protected void Drivers_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "Driver")
{
foreach (ListViewItem listItem in this.Drivers.Items)
{
(listItem.FindControl("SelectedDriver") as RadioButton).Checked = false;
}
(e.Item.FindControl("SelectedDriver") as RadioButton).Checked = true;
}
}
然而它并没有像我想要的那样工作。当我单击单选按钮时,它们会不断被选中 none,其中的 none 会被重置。为了让它工作,我必须在 radioButton 控件旁边添加一些文本,我必须单击不在 RadioButton 上的文本才能工作。如您所见,文本部分非常烦人。 任何人都可以帮助我知道我可以做些什么来让它按预期工作吗?或者有谁知道可行的解决方案。
谢谢
为了让 RadioButtons 按预期工作,我设置了 AutoPostBack = "true"
属性 OnCheckedChanged = "SelectedDriver_CheckedChanged"
我从后面的代码中执行了以下操作,一切正常
protected void SelectedDriver_CheckedChanged(object sender, EventArgs e)
{
RadioButton selectedButton = new RadioButton();
selectedButton = (RadioButton)sender;
foreach (ListViewItem listItem in this.Drivers.Items)
{
(listItem.FindControl("SelectedDriver") as RadioButton).Checked = false;
}
selectedButton.Checked = true;
}