我有一个带有复选框和单选按钮列表的 gridview (asp.net)。在此 gridview 上方,我有一个按钮,允许用户将 gridview 中的所有 SELECTED 项目设置为特定值。我的意思是选中了gridview内的复选框。此网格视图位于更新面板中,我不知道这是否是我遇到问题的原因,但这是我的问题。
正如我所说,gridview 有一个这样的复选框:
<ItemTemplate>
<asp:CheckBox ID="chkSelector" runat="server"
ToolTip="Select row?" />
</ItemTemplate>
还有一个像这样的单选按钮列表:
<asp:RadioButtonList ToolTip="Please provide an answer to the method." AutoPostBack="true" RepeatDirection="Horizontal" ID="rbAnswer" runat="server" SelectedValue='<%# DataBinder.Eval(Container, "DataItem.AnswerID")%>' OnSelectedIndexChanged="rbAnswer_SelectedIndexChanged">
<asp:ListItem Text="Yes" Value="Yes" style="color:green;"></asp:ListItem>
<asp:ListItem Text="No" Value="No" style="color:red;"></asp:ListItem>
<asp:ListItem Text="N/A" Value="N/A" style="color:gray;"></asp:ListItem>
<asp:ListItem Value="" Text="" style="display: none" />
</asp:RadioButtonList>
当您选中复选框时(您可以选择多个复选框(网格中的行项目),然后单击此按钮。该按钮执行以下操作:
foreach (GridViewRow Row in this.gvLineItems.Rows)
{
CheckBox cb = (CheckBox)Row.FindControl("chkSelector");
Label id = (Label)Row.FindControl("lblID");
if (cb != null && cb.Checked)
{
long lID = Convert.ToInt32(gvLineItems.DataKeys[Row.RowIndex].Value);
RadioButtonList rbl = (RadioButtonList)Row.FindControl("rbAnswer");
rbl.Items.FindByText("N/A").Selected = true;
}
}
那就是它遍历gridview中的所有项目。如果选中该项目(chkSelector = true),则它将单选按钮列表答案设置为“N/A”。我调试代码,我可以看到答案设置正确,但是当我的方法完成后,用户界面不显示结果。这意味着答案从未设置为 N/A。它只是保持原来的状态......
有谁知道为什么会这样?我正在使用更新面板,所以我不确定这是否是原因???