Как я могу добавить элементы, которые проверены на arraylist в Gridview c # asp.net - PullRequest
0 голосов
/ 28 марта 2012

Я хочу сохранить некоторые данные, которые отмечены в списке массивов.Я добавил флажок в 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>

1 Ответ

0 голосов
/ 28 марта 2012

Можете ли вы попробовать это?

protected void SelectedFriends_Click(object sender, EventArgs e)
      {

        list.Clear();

        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();
                list.Add(friendname);

            }
         }


    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...