This is a migrated thread and some comments may be shown as answers.

RadGrid HeaderContextMenu PostBack not firing ItemClick

4 Answers 98 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Tushar
Top achievements
Rank 1
Tushar asked on 29 May 2014, 11:02 AM
Hi,
I am adding a new menu to my RadGrid HeaderContextMenu :
        var newFilterItem = new Telerik.Web.UI.RadMenuItem();
        newFilterItem.set_text("Clear All Filters");
        newFilterItem.set_postBack(true);
        sender.get_items().insert(0, newFilterItem);

I expect that since postback is true, when menu is clicked, ItemClick event of HeaderContext menu should be fired.
Postback is happening but ItemClick event is not firing!! Is there any other event that gets fired when postback is true for Header Menu?

4 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 29 May 2014, 01:02 PM
Hi Tushar,

You can try the following code snippet to add an item in ContextMenu.

ASPX:
<HeaderContextMenu OnItemClick="HeaderContextMenu_ItemClick" >
</HeaderContextMenu>

C#:
rotected void Page_Load(object sender, EventArgs e)
{
    RadGridTest.HeaderContextMenu.PreRender += new EventHandler(HeaderContextMenu_PreRender);     
}
void HeaderContextMenu_PreRender(object sender, EventArgs e)
{
    RadMenuItem newItem = new RadMenuItem("Clear All Filters");
    newItem.Attributes["TableID"] = RadGridTest.UniqueID;
    RadGridTest.HeaderContextMenu.Items.Add(newItem);   
}
protected void HeaderContextMenu_ItemClick(object sender, RadMenuEventArgs e)
{
// Your code
}

Thanks,
Shinu
0
Tushar
Top achievements
Rank 1
answered on 29 May 2014, 03:07 PM
Hi Shinu,
Thanks for your reply.
I have already tried this code snippet. But it does not show the new menu item added and also no ItemClick is fired.
0
Accepted
Shinu
Top achievements
Rank 2
answered on 30 May 2014, 05:23 AM
Hi Tushar,

Please try the below sample code snippet which works fine at my end. Provide your full code snippet if this doesn't help.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" EnableHeaderContextMenu="true" AllowFilteringByColumn="true">
    <HeaderContextMenu OnItemClick="HeaderContextMenu_ItemClick">
    </HeaderContextMenu>
    <MasterTableView>
        <Columns>
            <telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="ID" />
            <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name" />
            <telerik:GridBoundColumn DataField="Number" HeaderText="Number" UniqueName="Number" />
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

C#:
protected void Page_Load(object sender, EventArgs e)
{
    RadGrid1.HeaderContextMenu.PreRender += new EventHandler(HeaderContextMenu_PreRender);
}
void HeaderContextMenu_PreRender(object sender, EventArgs e)
{
    RadMenuItem newItem = new RadMenuItem("Clear All Filters");
    newItem.Attributes["TableID"] = RadGrid1.UniqueID;
    RadGrid1.HeaderContextMenu.Items.Add(newItem);
}
protected void HeaderContextMenu_ItemClick(object sender, RadMenuEventArgs e)
{     
    if (e.Item.Text == "Clear All Filters")
    {
        foreach (GridColumn column in RadGrid1.MasterTableView.Columns)
        {
            column.CurrentFilterFunction = GridKnownFunction.NoFilter;
            column.CurrentFilterValue = String.Empty;
        }
        RadGrid1.MasterTableView.FilterExpression = string.Empty;
        RadGrid1.MasterTableView.Rebind();
    }
}
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
    dynamic data = new[] {
new { ID = 1, Name = "Name1", Number=123},
new { ID = 2, Name = "Name2", Number=234},
new { ID = 3, Name = "Name3", Number=234},
new { ID = 4, Name = "Name4", Number=456},
new { ID = 5, Name = "Name5", Number=567},
new { ID = 6, Name = "Name6", Number=567},
new { ID = 7, Name = "Name7", Number=789},
new { ID = 8, Name = "Name8", Number=896},
new { ID = 9, Name = "Name9", Number=741}
};
    RadGrid1.DataSource = data;
}

Thanks,
Shinu
0
Tushar
Top achievements
Rank 1
answered on 30 May 2014, 03:08 PM
Hi Shinu,
Thanks a lot for the code snippet, I was able to figure out the problem because of it.
I am having one more issue related to exporting : http://www.telerik.com/forums/making-standard-postback-for-exporting-radgrid-with-ajaxmanager

If you can help with this, it will be really great!!

Thanks a lot!!
Tags
Grid
Asked by
Tushar
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Tushar
Top achievements
Rank 1
Share this question
or