Я хочу сохранить некоторые данные, которые отмечены в списке массивов.Я добавил флажок в gridview и когда я проверил один из пунктов.событие click флажка запускается для всех, поэтому, например, у меня есть две данные, когда я нажимаю флажок any, он запускается 4 раза, поэтому он работает для каждого, однако, я хочу, чтобы был добавлен только элемент одного флажка, который отмечен или не отмеченк списку.Есть решение или другое решение
// checkbox click event
protected void SelectedFriends_Click(object sender, EventArgs e)
{
bool isflag=false;
foreach (GridViewRow row in GridView1.Rows)
{
// Access the CheckBox
CheckBox cb = (CheckBox)row.FindControl("FriendSelector");
if (cb != null && cb.Checked)
{
string friendname = GridView1.Rows[row.RowIndex].Cells[1].Text.ToString();
for (int i = 0; i < list.Count; i++)
{
if (friendname.Equals(list[i].ToString()))
{
isflag = true;
}
}
// if it is added previously don't add to list
if(!isflag)
{
list.Add(friendname);
}
}
else
{
string friendname = GridView1.Rows[row.RowIndex].Cells[1].Text.ToString();
for (int i = 0; i < list.Count; i++)
{
if (friendname.Equals(list[i].ToString()))
{
isflag = true;
}
}
// if it is not checked and it is in list delete it from list
if(isflag)
{
list.Remove(friendname);
}
}
}
}
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Font-Bold="True"
Width="157px">
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox runat="server" id="FriendSelector"
oncheckedchanged="SelectedFriends_Click" AutoPostBack="True">
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="F_Name" HeaderText="Friend Name"
SortExpression="F_Name" />
</Columns>
</asp:GridView>