2010-08-20 4 views
0

클라이언트와 관련된 모든 PDF 문서를 나열 할 회사 웹 페이지를 만들고 싶습니다. 나는 모든 PDF를 동일한 폴더에 가지고 있으며 엑셀 스프레드 시트도이 폴더에있다. 나는 현재 엑셀 시트의 데이터를 채우는 gridview를 가지고 있으므로 잘 작동한다. 페이지에서 볼 수 있도록 테이블에 넣습니다.C# 파일 배열 gridview 드롭 다운

회사 :
1) ACME,
2) Slaters,
3) MotoUSA

소유자 :
1 자, 엑셀 spreedsheet 2 열 (회사와 owner)를 가지고 말할 수) 존,
2) 마이크,
3) 존

그래서, John은 회사 # 1 및 # 3의 소유자입니다. & 마이크는 # 2의 소유자입니다.

나는이 회사들과 관련된 PDF 파일을 가지고 있습니다. 그들은의 명명 규칙이 있습니다 - document1.pdf
ACME - document2.pdf
Slaters -

ACME document1.pdf
을 MotoUSA - document1.pdf
MotoUSA - document2.pdf
MotoUSA - document3.pdf
MotoUSA - document4.pdf

그래서 모든 PDF는 동일한 완과 함께 시작됩니다 어떤 이름과 같은 철자법. 내가 찾고있는 것은 gridview에 회사 이름과 소유자 테이블 만 표시하고 사용자가 회사 이름을 클릭하면 해당 회사와 관련된 PDF 만 표시 할 수 있습니다.

이 배열과 내 gridview 일부 편집 배열이 필요할 것이라고 확신합니다.

도움이 될만한 점이 있으면 알려 주시고이 설명에서 벗어난 부분이 있으면 알려 주시기 바랍니다.

답변

0

CompanyName에 대한 링크를 사용하고 팝업을 열어 팝업창에 을 입력하고 회사 이름에 맞는 문서 링크를 제공 할 수 있습니다. 당신은 사람들이 더 나은 답변을 작성 도움이 될 코드를 공유 할 수있는 경우

)

0

을 우리는 Active Directory에 대한 우리의 내부 사이트를 연결하고 무엇에 대한 액세스 권한이있는 사용자를 결정하기 위해 브라우저를 통해 제공되는 자격 심사를 사용합니다.

데이터를 데이터 그리드로 가져 오는 한, 대상 프레임 워크에 따라 다릅니다. 그러나 현재 사용자라면 Linq와 DataGrid는 서로 의미가 있습니다.

필자는이 배열과 내 gridview의 편집이 필요할 것이라고 확신합니다.

Linq는 IEnumerable을 반환하고 IEnumerable에서 정보를 가져 와서 DataGrid 컨트롤을 채우는 데 Google에 좋은 정보가있을 것입니다.

앞서 언급했듯이이 솔루션을 추가 개발할 때 좀 더 많은 코드를 사용하면 편리 할 수 ​​있습니다.

0

당신은 사용하여 디렉토리에있는 모든 파일의 배열을 얻을 수 있습니다 :

string[] fileEntries = Directory.GetFiles(targetDirectory); 

는 그런 다음이 파일 이름에서 모든 이름을 취득 해, 파일 이름 및 COMPANYNAME을 가진 클래스로 파일 이름을 포맷합니다.

List<CompanyFile> companyFiles = new List<CompanyFile>(); 
foreach(string filename in fileEntries) 
{ 
    string[] filenameInfo = filename.Split(" - "); 
    companyFiles.Add(new CompanyFile{ 
     CompanyName=filenameInfo[0], 
     Filename=filenameInfo[1], 
     OriginalFilename=filename 
    }); 
} 

그래서 지금 당신이 COMPANYNAME으로 그룹을 수 companyFiles의 목록을 가지고, 그 결과는 기업의 목록, 그 파일의 목록과 각 수 있도록.

List<Company> companies = (from c in companyFiles 
          group c by c.CompanyName into g 
          select new Company { CompanyName=g.Key, FileNames=g }).ToList(); 

는이이 작업이 예제를 얻을하는 데 필요한 클래스입니다 : 당신은 당신이 회사의 소유자에 대한 검색 및 목록에이를 사용할 수있는 companies 목록을 가지고 일단

class CompanyFile{ 
    public string CompanyName {get;set;} 
    public string Filename {get;set;} 
    public string OriginalFilename {get;set;} 
} 

class Company{ 
    public string CompanyName {get;set;} 
    public List<string> FileNames {get;set;} 
} 

모든 특정 회사의 파일.

참고 : 나는 이것을 편집 할 시간이 없었습니다 (이 편집기에서 썼습니다). 그것이 당신을 위해 작동하는지 알려주세요.

관련 문제