覆盖Telerik RadGrid AddNewRecordButton功能以将用户重定向到新页面,而不是将新的插入记录行添加到网格

时间:2015-08-04 18:26:11

标签: c# asp.net webforms telerik telerik-grid

以前当我的RadGrid不是批量编辑网格时,我能够使用网格的AddNewRecord按钮将用户重定向到另一个页面,其代码如下:

protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e)
{
    if (e.CommandName == "InitInsert")
    {
        Response.Redirect(redirectUrl + "?ProductID=" + this.ProductId);
    }
}

在我的网格成为批量编辑网格后,“添加新按钮”不再进入ItemCommand事件,而是尝试向网格添加内联插入记录行。无论如何我仍然可以使用此按钮并覆盖其功能仍然重定向用户?

1 个答案:

答案 0 :(得分:1)

所以我对此进行了测试并确认了我在评论中所怀疑的内容。当EditMode="Batch"时,“添加新记录”按钮以及其他按钮不再导致回发。您可以通过删除OnClientClick中的RadGrid1_ItemCreated的JavaScript来覆盖此内容,如下所示:

将此添加到您的RadGrid1属性:

OnItemCreated="RadGrid1_ItemCreated"

背后的代码(注意:实际上有一个Button和一个LinkButton):

protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
    if (e.Item.ItemType == Telerik.Web.UI.GridItemType.CommandItem) {
        //This is the icon with the plus (+) sign unless you've changed the icon
        Button iconButton = e.Item.FindControl("AddNewRecordButton");
        if (iconButton != null) {
            iconButton.OnClientClick = "";
        }
        //This is the words "Add New Record" or whatever you've called it
        LinkButton wordButton = e.Item.FindControl("InitInsertButton");
        if (wordButton != null) {
            wordButton.OnClientClick = "";
        }
    }
}

这应该允许回发发生,并且您发布的代码应该能够运行。