webForumDet fria alternativet

Kodoptimering/-förbättring

.NET

0 svar · 324 visningar · startad av echoSwe

Medlem sedan nov. 20041 189 inlägg
Frågan#1

Tjena!

Det är så att jag har skrivit med viss hjälp av google ett script som räknar upp saker i en mapp till en HtmlGenericControl och lägger till varje sak som den hittar i mappen till en definition list... Varje dt skrivs ju ut från scriptet och dl taggen ligger i själva htmldokumentet (egentligen är det ett ascx dokument).

Jag undrar om ett par saker om detta då jag är relativt ny på asp.net -- finns det någonting som jag kan förbättra?
Till exempel så måste jag nu lägga till varje HtmlGenericControl manuellt när jag deklarerar dem och sedan manuellt ändra siffrorna i arrayn för att de ska passa till rätt htmlgenericcontrol.

Finns det något sätt att fixa detta på ett kanske lite mer objektorienterat sätt?

Sen så skapas ju en div i mål usercontrol:en och dessa lägger ju sig i en definition list vilket inte är 100% korrekt html... Någon som vet hur man hade kunnat göra?

Kan man skriva en customControl som tar in en datakälla i form av till exempel en array FileSystemInfo som källa och sedan skriver ut en perfekt definition list?

Jag vill helt enkelt ha lite kommentarer och råd... Någon som har lust att hjälpa mig med detta?

public class documents : System.Web.UI.UserControl
{
	

	protected Label lblLabel1;
	//controls from the usercontrolpage that this is the code behind for
	protected HtmlGenericControl schemana, veckobrev; 
	
	protected void Page_Load(object obj, EventArgs e)
	{
		string[] path = { "documents/scheman/", "documents/veckobrev/"};
		DirectoryInfo d = new DirectoryInfo( Server.MapPath(path[0]) );
		FixLinks(d, schemana, path[0], "",
					"s schema. Klicka för att öppna Adobe Acrobat Reader och visa schemat.",
					"");
		
		DirectoryInfo d2 = new DirectoryInfo ( Server.MapPath(path[1]) );
		FixLinks(d2, veckobrev, path[1], "Vecka ", "", "Vecka ");
	}
	
	public void FixLinks(DirectoryInfo dirInfo, HtmlGenericControl htmlControl, 
		string strRelativePath, 
		string strAltBefore, string strAltAfter, 
		string strText)
	{
		int dircount = 0;
		int filecount = 0;
		FileSystemInfo[] f = dirInfo.GetFileSystemInfos() ;
		foreach (FileSystemInfo i in f)
		{
			
	if (i.GetType().ToString()== "System.IO.DirectoryInfo" ) 
	{
		dircount++;
		//DirectoryInfo d1 = new DirectoryInfo ( i.FullName );
		
		//genDiv.InnerHtml += String.Format("<dt><a href=\"{0}\">{0}</a></dt>  \n", i.FullName);
		//Check ( d1 ) ; //used to spread up tree
	}
			
	else
	{
		string strFileName = i.Name.Remove((i.Name.Length - 4), 4);
		htmlControl.InnerHtml += String.Format("<dt><a href=\"{0}{1}\" title=\"{3}{2}{4}\">{5}{2}</a></dt>\n",
												strRelativePath, i.Name, 
												strFileName, strAltBefore, 
												strAltAfter, strText);
		filecount++;	
	}
		}
	
	}	
}
250 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)