Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > GridView(insert,delete,edit)


Автор: knut 15.8.2008, 15:14
Добрый день.
есть GridView мне надо реализовать след.
1.insert new regord to GridView(i.e in datatable)
2.delele
3.update
я поступил след.методом
вот мой Default.aspx(gridview)

Код

<form id="form1" runat="server">
    <div style="width: 472px">
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True"
              
            AllowEditing="True" AllowDeleteing="TRUE" 
            AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID" 
            CellPadding="4" ForeColor="#333333" GridLines="None" 
            onrowdeleting="DeleteHandler" onrowcommand="GridView1_RowCommand" 
            onrowdeleted="DeletedHandler" >
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#EFF3FB" />
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" 
                    ShowSelectButton="True" />
                <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" 
                    SortExpression="ID" />
                <asp:BoundField DataField="Project_ID" HeaderText="Project_ID" 
                    SortExpression="Project_ID" />
                <asp:BoundField DataField="Project_Name" HeaderText="Project_Name" 
                    SortExpression="Project_Name" />
                <asp:BoundField DataField="Task_count" HeaderText="Task_count" 
                    SortExpression="Task_count" />
                <asp:BoundField DataField="Project_DateLine" HeaderText="Project_DateLine" 
                    SortExpression="Project_DateLine" />
            </Columns>
            
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#2461BF" />
            <AlternatingRowStyle BackColor="White" />
            
        </asp:GridView>
        <asp:LinqDataSource ID="LinqDataSource2" runat="server" 
            ContextTypeName="TestLinqQ.DataClasses1DataContext" EnableDelete="True" 
            EnableInsert="True" EnableUpdate="True" TableName="Projects">
        </asp:LinqDataSource>
        
    </div>
    </form>



затем в оброботчике (это только удаления)

Код

protected void DeleteHandler(object sender, GridViewDeleteEventArgs e)
        {
          
            try
            {
                
                string str_value = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
                int int_value = System.Convert.ToInt32(str_value, 10);
                DeleteTableFunction(int_value);      
                
            }
            catch (Exception exept)
            {
                MessageBox.Show(exept.ToString());
            }
               
        }

 protected void DeleteTableFunction(int key)
        {
                var del = from p in db.Projects  where p.ID == key
                                                 select p;
                    foreach (var item in del)
                    {
                        db.Projects.DeleteOnSubmit(item);
                        db.SubmitChanges();
                    }
        }


в принципе код работает при назадие делита с грида удаляется.но я знаю что я все зделал через... как не надо делать.
подскажите правельный путь как такое реализовать?

Автор: pr0fess0r 17.8.2008, 23:29
Вроде в asp:GridView встроены функции добавить/удалить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)