Telerik RadGrid - How do I default to edit mode?

2019-04-07 12:34发布

问题:

I want to make the items of my RadGrid be editable on page load. I've tried both methods here http://www.telerik.com/help/aspnet/grid/grddefaulteditmodeforgriditemsoninitialload.html but neither have any effect.

The 2nd method for example, shown below where the Edit property is set on the ItemCreated event, causes the Edit mode to be set true (verified by debugger) but it has no effect on the results when the page is displayed.

Anyone have any ideas what I'm doing wrong?

protected void RadGrid1_ItemCreated(object sender, Telerik.WebControls.GridItemEventArgs e)
{
    if (!Page.IsPostBack && e.Item is GridEditableItem)
   {
       e.Item.Edit = true;
   }
}

回答1:

This works:

for (int i = 0; i < RadGrid1.PageSize; i++)
{
    RadGrid1.EditIndexes.Add(i);
    RadGrid1.Rebind();
}


回答2:

This also works:

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    e.Item.Edit = true;
}


回答3:

the code below can be used if you'd like to do as described above but for child tables:

protected void RadGrid1_PreRender(object sender, EventArgs e)  
{  
    foreach (GridDataItem item in RadGrid1.MasterTableView.Items)  
    {  
        if (item.HasChildItems)  
        {  
            GridTableView childTable = (GridTableView)item.ChildItem.NestedTableViews[0];  


            foreach (GridDataItem childitem in childTable.Items)  
            {  

               //Check for the newly inserted row 
               //and set in edit mode 
               //childitem.Edit=true; 
            }  
        }  
    }  
    RadGrid1.MasterTableView.Rebind();  
}