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;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |