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