UserControl의 코드를 데이터베이스 테이블에 저장하거나 동적으로 컴파일하거나 거기에서로드 할 수있는 방법이 있습니까? 나는 UserControl의 전체 코드를 포함하는 데이터베이스에서 문자열을 얻은 다음 페이지에 추가한다는 의미입니까?Web UserControl ascx와 코드를 데이터베이스에 저장하고 거기에서로드 할 수 있습니까?
2
A
답변
1
몇 가지 아이디어 :
(대신 컨트롤) 전체 페이지와
-
HttpHandler를 가진 임시 파일
- 사용 UserControl.LoadControl()와
- 사용 UserControl.LoadControl()
- 사용 BuildManager.CreateInstanceFromVirtualPath() 옵션 1 : 임시 파일 (가장 쉬운 방법)
- 웹 응용 프로그램에 쓸 디렉토리를 만듭니다 (예 :
~/tmp/
(및 웹 응용 프로그램이 & 이 디렉토리에 대한 권한 생성, 수정 제공) 임시 파일에 저장 UserControl을 내용 :
string userControlContents = /* get user control contents from database */; string path = Server.MapPath("~/tmp/2011081612332423.ascx"); System.IO.File.WriteAllText(path, userControlContents);
로드 사용자 정의 컨트롤 :
Control c = UserControl.LoadControl("~/tmp/2011081612332423.ascx")
을
사용자 정의 컨트롤을 원하는 페이지에 추가하십시오.
,691,363,210this.Controls.Add(c);
옵션 2 : HttpHandler를
- 이드 의해 해당 UserControl 내용을 가져 와서
Response
스트림- 을 데이터베이스에서 원시 콘텐츠를 출력하는 페이지 또는 HttpHandler를 구현 UserControl.LoadControl()이 아마도 Response 스트림에 관심이 없기 때문에 이것은에서 작동하지 않을 수 있습니다.
그런 다음 옵션 1에서와 같이 컨트롤을로드 :
Control c = UserControl.LoadControl("~/UserControlFromDB.ascx?id=392")
- ASP.NET의 JIT 캐싱 파일 이름 때문에 깰 수있는 "UserControlFromDB.ascx은"항상 (만
id=NNN
동일 변경). URL 재 작성이이 문제를 해결할 수 있습니다.
- ASP.NET의 JIT 캐싱 파일 이름 때문에 깰 수있는 "UserControlFromDB.ascx은"항상 (만
옵션 3 :
BuildManager.CreateInstanceFromVirtualPath()
가상 경로에서 ASP.NET에서Page
을 컴파일 : 페이지 대신 컨트롤의 컴파일.따라서 전체 페이지을 데이터베이스에 저장하고 동적으로 컴파일 할 수 있습니다.
면책 조항 : 내가 컨트롤이나 데이터베이스의 페이지를 저장하지 않는 것이 좋습니다; 디버깅 및 보안 비용이 증가합니다.
- 웹 응용 프로그램에 쓸 디렉토리를 만듭니다 (예 :
관련 문제
- 1. 데이터베이스에 쿠키를 안전하게 저장하고 있습니까?
- 2. 서버와 데이터베이스에 파일을 저장하고 있습니까?
- 3. 지리 데이터를 어떻게 안드로이드 데이터베이스에 저장하고 쿼리 할 수 있습니까?
- 4. cancan : 데이터베이스에 저장하고 있습니까? accessible_by?
- 5. UserControl 내부 수 있습니까?
- 6. 데이터베이스에 사용자 구성 설정을 저장하고 있습니까?
- 7. ID를 나쁜 해킹을하기 위해 데이터베이스에 저장하고 있습니까?
- 8. 어떻게 UserControl 자체를 파괴 할 수 있습니까?
- 9. SQL에서 RichTextBox.Document를 저장하고 검색 할 수 있습니까?
- 10. 데이터베이스에 장바구니를 저장하고 장바구니에 넣으십시오.
- 11. 델파이에서 Web Bot을 생성 할 수 있습니까?
- 12. ascx와 .cshtml의 차이점은 무엇입니까?
- 13. MySQL 데이터베이스에 객체를 저장하고 싶습니다.
- 14. 어떻게 WordPress 테마를 저장하고 설정을 검색 할 수 있습니까?
- 15. 중앙 위치에서 SQLite 데이터베이스를 저장하고 액세스 할 수 있습니까?
- 16. 어떻게이 코드를 더 최적화 할 수 있습니까?
- 17. VB.NET에서 데이터베이스에 액세스 할 수 있습니까?
- 18. 데이터베이스에 다른 테이블을 추가 할 수 있습니까?
- 19. 외부 HD를 사용하여 mysql 데이터베이스에 저장하고 저장
- 20. Perl 프로그램이 데이터베이스에 저장된 코드를 실행할 수 있습니까?
- 21. post-redirect-double 항목을 데이터베이스에 저장하고 게시합니다.
- 22. NSMutableArray를 sqlite3 데이터베이스에 어떻게 추가 할 수 있습니까?
- 23. WEB-INF에있는 client_deploy.wsdd 파일을 어떻게 참조 할 수 있습니까?
- 24. Lucene/Solr의 외부 속성을 기반으로 저장하고 결합 할 수 있습니까?
- 25. 변수에 레이블의 주소를 저장하고 goto를 사용하여 점프 할 수 있습니까?
- 26. 이 코드를 더 최적화 할 수 있습니까?
- 27. 데이터베이스 액세스 코드를 인라인 할 수 있습니까?
- 28. 브라우저에서 QR 코드를 생성 할 수 있습니까?
- 29. 누군가이 자바 코드를 설명 할 수 있습니까
- 30. jquery에서이 코드를 어떻게 반복 할 수 있습니까?
내 머리가 녹고있다. –
@pst 왜? 현재 Sharepoint에서 작업 중이며 데이터베이스에서 모든 코드를 가져옵니다. 그래서, 어떻게 든 가능할 것입니다. – teenup
데이터베이스에서 사용자 정의 컨트롤을로드합니다 ...? 나는 그들이 ControlTemplates에 있다고 확신했다 ... –