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

[Solved] Disappearing context menu after downloading a file in radgrid

2 Answers 125 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Jakub Wilk
Top achievements
Rank 2
Jakub Wilk asked on 09 Jun 2008, 10:09 AM
We have a problem witch context menu in RadGrid. After downloading a file context menu is disappearing. Only refreshing the page can fix the menu.

Code example:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="RadGridMenu._Default" %> 
 
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"
    <title>Untitled Page</title> 
</head> 
<body> 
     
     
    <form id="form1" runat="server"
     
    <script type="text/javascript"
    function RowContextMenu(sender, eventArgs) 
    { 
        var e = eventArgs.get_domEvent(); 
        var index = eventArgs.get_itemIndexHierarchical(); 
         
        document.getElementById('<%=hdnClickedRow.ClientID%>').value = index
        menu = $find("<%=RadMenu1.ClientID%>"); 
                
        menu.show(e); 
        e.cancelBubble = true
        e.returnValue = false
        if (e.stopPropagation) 
        { 
           e.stopPropagation(); 
           e.preventDefault(); 
        } 
    } 
    </script> 
     
    <input type="hidden" id="hdnClickedRow" runat="server" /> 
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server"
    </telerik:RadScriptManager> 
     
    <telerik:RadGrid ID="RadGrid1" runat="server"  onitemcommand="RadGrid1_ItemCommand"
    <MasterTableView> 
        <Columns> 
            <telerik:GridTemplateColumn> 
                <ItemTemplate> 
                    <asp:LinkButton ID="lnkbtn" runat="server" Text="Download File" CommandName="someCMD" /> 
                </ItemTemplate> 
            </telerik:GridTemplateColumn> 
        </Columns>        
         
    </MasterTableView>     
     
    <ClientSettings> 
        <ClientEvents OnRowContextMenu="RowContextMenu" /> 
        <Selecting AllowRowSelect="true" /> 
    </ClientSettings>     
     
    </telerik:RadGrid> 
     
    <telerik:RadContextMenu ID="RadMenu1" Runat="server" ContextMenuElementID="none"
    <Targets> 
        <telerik:ContextMenuControlTarget ControlID="RadGrid1" /> 
    </Targets> 
    <Items> 
        <telerik:RadMenuItem Text="abc abc abc" Value="abc abc abc1" /> 
        <telerik:RadMenuItem Text="abc abc abc" Value="abc abc ab2c" /> 
        <telerik:RadMenuItem Text="abc abc abc" Value="abc abc abc3" /> 
        <telerik:RadMenuItem Text="abc abc abc" Value="abc abc abc4" /> 
        <telerik:RadMenuItem Text="abc abc abc" Value="abc abc abc5" /> 
    </Items>     
    </telerik:RadContextMenu> 
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> 
    </form>     
     
</body> 
</html> 
 

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.IO; 
using System.Text; 
 
namespace RadGridMenu 
    public partial class _Default : System.Web.UI.Page 
    { 
        protected void Page_Load(object sender, EventArgs e) 
        { 
            if (!IsPostBack) 
            { 
                RadGrid1.DataSource = Enumerable.Range(0, 10); 
                RadGrid1.DataBind(); 
            } 
        } 
 
        private void DownaloadFile()  
        { 
            string fileToDownload = Path.Combine(Server.MapPath("."), "aaa.txt"); 
 
 
            using (FileStream oFile = new FileStream(fileToDownload, FileMode.Open)) 
            { 
                HttpContext.Current.Response.Clear(); 
                HttpContext.Current.Response.ContentType = "text/html"
                HttpContext.Current.Response.HeaderEncoding = Encoding.Default; 
                HttpContext.Current.Response.AddHeader("Content-disposition""attachment; filename=file.txt"); 
 
                using (BinaryReader br = new BinaryReader(oFile)) 
                { 
                    byte[] buff = new byte[51200]; 
                    int numOfRead = 0; 
                    while ((numOfRead = br.Read(buff, 0, buff.Length)) > 0) 
                    { 
                        HttpContext.Current.Response.OutputStream.Write(buff, 0, numOfRead); 
                    } 
                } 
                HttpContext.Current.Response.End(); 
            } 
        } 
 
        protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) 
        { 
            if (e.CommandName == "someCMD"
            { 
                DownaloadFile(); 
            } 
        } 
 
        protected void Button1_Click(object sender, EventArgs e) 
        { 
            DownaloadFile(); 
        } 
    } 
 
 

What can we do to fix it?
Nowicki Sebastian

2 Answers, 1 is accepted

Sort by
0
Konstantin Petkov
Telerik team
answered on 09 Jun 2008, 10:43 AM
Hello Jakub Wilk,

Please, give the solution from the below KB a try and let us know if it helps.

http://www.telerik.com/support/kb/article/b454K-baad-b454T-a-b454c-a.aspx

Greetings,
Konstantin Petkov
the Telerik team

Instantly find answers to your questions at the new Telerik Support Center
0
Jakub Wilk
Top achievements
Rank 2
answered on 09 Jun 2008, 01:28 PM
Thanks,
This solve my problem.
Tags
Grid
Asked by
Jakub Wilk
Top achievements
Rank 2
Answers by
Konstantin Petkov
Telerik team
Jakub Wilk
Top achievements
Rank 2
Share this question
or