Все данные имеют флажок на Gridview для удаления - PullRequest
1 голос
/ 27 января 2011

У меня есть один Gridview (Gridview1) и один Button (Удалить).И AVUKAT table (столбцы -> HESAP, MUSTERI, AVUKAT)

Мой Gridview код

<asp:GridView ID="GridView1" 
            runat="server" AutoGenerateColumns="False" 
            CellPadding="4" DataSourceID="GridviewDataSource" ForeColor="#333333" 
            GridLines="None" Width="329px" AllowSorting="True" >

Мой DataSource код

<asp:SqlDataSource ID="GridviewDataSource" runat="server" 
            ConnectionString="<%$ ConnectionStrings:SqlServerCstr %>" 
            SelectCommand="SELECT * FROM [AVUKAT] ORDER BY [MUSTERI]">

И одна кнопка (Удалить)

То, что я хочу, когда я показываю данные в Gridview, все данные имеют флажок (как на этом рисунке)

enter image description here

И затем, когда я нажимаю Delete Button, удаляя все проверенные данные в таблице и таблице.

Как я могу это сделать?

С наилучшими пожеланиями, Сонер

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Вот статья, которая точно соответствует тому, что вы ищете, и содержит полные примеры кода: http://csharpdotnetfreak.blogspot.com/2009/04/delete-multiple-rows-gridview-checkbox.html

Волшебство происходит при нажатии кнопки Удалить.Код проходит по сетке и проверяет каждую строку на наличие флажка.Когда он находит флажок, он сохраняет идентификатор строки в коллекции строк.После сканирования всего GridView удаляются все идентификаторы в коллекции строк.

protected void btnDelete_Click(object sender, EventArgs e)
{
//Create String Collection to store 
//IDs of records to be deleted 
  StringCollection idCollection = new StringCollection();
  string strID = string.Empty;

  //Loop through GridView rows to find checked rows 
   for (int i = 0; i < GridView1.Rows.Count; i++)
   {
    CheckBox chkDelete = (CheckBox)
       GridView1.Rows[i].Cells[0].FindControl("chkSelect");
            if (chkDelete != null)
            {
                if (chkDelete.Checked)
                {
                 strID = GridView1.Rows[i].Cells[1].Text;
                 idCollection.Add(strID);
                }
            }
        }

        //Call the method to Delete records 
        DeleteMultipleRecords(idCollection);

        // rebind the GridView
        GridView1.DataBind();
    }
0 голосов
/ 27 января 2011

Используйте TemplateField, для ItemTemplate установите флажок на стороне сервера.При нажатии кнопки «Удалить» циклически перебирайте коллекцию GridView.Rows для строк элементов или альтернативных элементов, затем найдите флажок в первой ячейке и посмотрите, отмечен ли он, а затем удалите.

HTH.

...