98 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			98 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Web;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI;
							 | 
						|||
| 
								 | 
							
								using System.Web.UI.WebControls;
							 | 
						|||
| 
								 | 
							
								using System.IO;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class source : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        protected void Page_Init(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                string files = Request.QueryString["files"];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (String.IsNullOrEmpty(files))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (!String.IsNullOrEmpty(files))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    string[] fileNames = files.Split(';');
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    for (int i = 0; i < fileNames.Length; i++)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        string fileName = fileNames[i].Trim();
							 | 
						|||
| 
								 | 
							
								                        if (String.IsNullOrEmpty(fileName))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            continue;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        // 处理编辑页面,类似 /demo_pro/grid/grid_newtab_window.aspx?id=101&name=张三 
							 | 
						|||
| 
								 | 
							
								                        int lastQuestionMaskPosition = fileName.IndexOf("?");
							 | 
						|||
| 
								 | 
							
								                        if (lastQuestionMaskPosition >= 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            fileName = fileName.Substring(0, lastQuestionMaskPosition);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        string shortFileName = GetShortFileName(fileName);
							 | 
						|||
| 
								 | 
							
								                        string iframeUrl = "./source_file.aspx?file=" + fileName;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        Tab tab = new Tab
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Title = shortFileName,
							 | 
						|||
| 
								 | 
							
								                            EnableIFrame = true,
							 | 
						|||
| 
								 | 
							
								                            IFrameUrl = iframeUrl
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                        tab.IconUrl = GetIconUrl(tab.IFrameUrl);
							 | 
						|||
| 
								 | 
							
								                        TabStrip1.Tabs.Add(tab);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        // End with .aspx.
							 | 
						|||
| 
								 | 
							
								                        if (fileName.ToLower().EndsWith(".aspx") 
							 | 
						|||
| 
								 | 
							
								                            || fileName.ToLower().EndsWith(".ascx") 
							 | 
						|||
| 
								 | 
							
								                            || fileName.ToLower().EndsWith(".master")
							 | 
						|||
| 
								 | 
							
								                            || fileName.ToLower().EndsWith(".ashx"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            tab = new FineUIPro.Tab
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Title = shortFileName + ".cs",
							 | 
						|||
| 
								 | 
							
								                                EnableIFrame = true,
							 | 
						|||
| 
								 | 
							
								                                IFrameUrl = iframeUrl + ".cs"
							 | 
						|||
| 
								 | 
							
								                            };
							 | 
						|||
| 
								 | 
							
								                            tab.IconUrl = GetIconUrl(tab.IFrameUrl);
							 | 
						|||
| 
								 | 
							
								                            TabStrip1.Tabs.Add(tab);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private string GetIconUrl(string url)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string suffix = url.Substring(url.LastIndexOf('.') + 1);
							 | 
						|||
| 
								 | 
							
								            return "~/res/images/filetype/vs_" + suffix + ".png";
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private string GetShortFileName(string fileName)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            int index = fileName.LastIndexOf("/");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if (index >= 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return fileName.Substring(index + 1);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            return fileName;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |