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