简体   繁体   中英

How to add functionality to custom new row button in DevExpress GridView control

I am trying to emulate another form that the other developer here created. In the DevExpress gridview, he added a new row button to the filter row, rather than to each row. I figured out how to do that by copying the custom button into the appropriate place in the filter row.

My question is how do I add the functionality to it? I found the addnewrow() method in the documentation, but it required a DataTable() class that I couldn't figure out how to get. Can you help me? I just started working with your ASPxGridView control today so this is all new to me.

Here is some of the code I found for adding a new row on DevExpress's gridview. But it feels like I am on the wrong track. And my first question about it is where do I find the DataTable class? Is there a simpler way to do this?

DataTable GetTable()
    {
        //You can store a DataTable in the session state
        DataTable table = Session["Table"] as DataTable;
        if (table == null)
        {
            table = new DataTable();

            DataColumn colid = table.Columns.Add("ID", typeof(Int32));
            DataColumn nameid = table.Columns.Add("Name", typeof(String));
            table.PrimaryKey = new DataColumn[] { colid };
            colid.ReadOnly = true;

            for (int i = 0; i < 23; i++)
            {
                DataRow aRow = table.NewRow();
                aRow["ID"] = i;
                aRow["Name"] = String.Format("Name{0}", i);

                table.Rows.Add(aRow);
            }
            Session["Table"] = table;
        }
        return table;
    }
    protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e)
    {
        ASPxGridView grid = sender as ASPxGridView;

        DataTable table = GetTable();
        table.Rows.Add(new Object[] { e.NewValues["ID"], e.NewValues["Name"] });

        Session["Table"] = table;

        e.Cancel = true;
        grid.CancelEdit();
    }

You should get a bit of general knowledge before you do this. Look here for data binding explanation and here for ASPxGridView editing demos . Storing data in session (like in sample you found) is rarely a way to go.
As for add new row you can use ASPxClientGridView.AddNewRow client side method. So, assign ClientInstanceName to your ASPxGridView (eg grid1 ) and call grid1.AddNewRow() on button click event - ASPxButton.ClientSideEvents.Click .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM