Update, insert-und delete-gridview ohne Datenbank

Ich in der Lage bin zu löschen und einfügen aber ich habe keine Ahnung, wie zu wählen und zu aktualisieren. Ich bin mit DataTable und ich nicht haben, um für die Verwendung von Datenbank zu aktualisieren

Markup:

<div>
    Name <asp:TextBox ID="TxtName" runat="server" ></asp:TextBox>
    Age <asp:TextBox ID="txtAge" runat="server" ></asp:TextBox>

    <asp:Button ID="btnInsert" Text="Insert"  runat="server" OnClick="btnInsert_Click"  />

    <asp:GridView ID="grdView" runat="server" OnRowCommand="grdView_RowCommand" OnRowDeleting="grdView_RowDeleting" OnSelectedIndexChanged="grdView_SelectedIndexChanged"   >

    <Columns>
        <asp:TemplateField>               
                <ItemTemplate>
                    <asp:Button ID="btn" runat="server" Text="Delete"  CommandName="delete" />
                </ItemTemplate>
                <EditItemTemplate>

                </EditItemTemplate>
                <%--<ItemTemplate>
                    <asp:Button ID="btnEdit" runat="server" Text="Edit" CommandName="Edit" />
                </ItemTemplate>--%>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button runat="server" CommandName="Change" ID="btnEdit" Text="Edit" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>

Code:

public partial class WebForm1 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    public static DataTable dt;
    public static int i = 1;
    protected void btnInsert_Click(object sender, EventArgs e)
    {
        Session["datatable"] = dt;
        dt = new DataTable();
        DataRow dr = null;
        dt.Columns.Add(new DataColumn("RowNumber", typeof(int)));
        dt.Columns.Add(new DataColumn("Column1", typeof(string)));
        dt.Columns.Add(new DataColumn("Column2", typeof(string)));
        //
        if (Session["datatable"] != null) 
        {

            dt = (DataTable)Session["datatable"];
            dr = dt.NewRow();
            dr["RowNumber"] = i;
            dr["Column1"] = TxtName.Text;
            dr["Column2"] = txtAge.Text;
            dt.Rows.Add(dr);
        }
        else
        {
             dr = dt.NewRow();
            dr["RowNumber"] = i;
            dr["Column1"] = TxtName.Text;
            dr["Column2"] = txtAge.Text;
            dt.Rows.Add(dr);
        }

        grdView.DataSource = dt;
        grdView.DataBind();
        i++;
    }

    //protected void btn_Click(object sender, EventArgs e)
    //{
    //   dt = (DataTable)Session["datatable"];
    //   if (dt.Rows.Count > 0)
    //   {

    //       dt.Rows.RemoveAt(Convert .ToInt16 ( grdView.SelectedRow) );
    //       grdView .DataSource = dt;
    //       grdView.DataBind();

    //   }
    //}

    protected void grdView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "delete")
        {
            dt = (DataTable)Session["datatable"];
            if (dt.Rows.Count >= 0)
            {

                dt.Rows.RemoveAt(Convert.ToInt16(grdView.SelectedRow));
                grdView.DataSource = dt;
                grdView.DataBind();

            }
            else if (e.CommandName == "Change")
            {
                TxtName.Text = grdView .Rows[grdView .SelectedIndex].Cells[1].Text;
            }
        }
    }

    protected void grdView_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        grdView.DataSource = dt;
        grdView.DataBind();
    }

    protected void grdView_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}
Ich schlage vor, Sie verwenden Static Klasse für diesen Zweck..

InformationsquelleAutor user3201772 | 2014-02-28

Schreibe einen Kommentar