Добрый день. есть 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(); } }
|
в принципе код работает при назадие делита с грида удаляется.но я знаю что я все зделал через... как не надо делать. подскажите правельный путь как такое реализовать?
|