ASP.NET Dynamic Data에서 계산 된 속성을 DisplayColumn으로 사용 하시겠습니까?

StackOverflow https://stackoverflow.com/questions/559174

  •  05-09-2019
  •  | 
  •  

문제

ASP.NET 동적 데이터 사이트에 '소프트웨어 릴리스'테이블을 표시하려고합니다. 릴리스 테이블에는 빌드 번호가 3 개의 int 필드 (메이저, 마이너, 빌드)로 저장됩니다. EntityFramework를 사용하고 있으므로 EF 모델이 데이터베이스 스키마에 바인딩되어 있습니다. 동적 데이터 사이트에서, 빌드 번호가 릴리스 객체가 표시되는 곳 (특히 관련 객체의 페이지에 외래 키로 표시 될 때)에 따라 빌드 번호가 단일 필드 (major.minor.build)로 표시되기를 원합니다. 이 '계산 된 열'은 내 데이터베이스의 필드가 아니기 때문에 Dynamic-Data가 그것을 인식하거나 표시하도록하는 것 같지는 않습니다. 릴리스 객체에 속성을 추가 할 수 있습니다 (EF에 의해 생성 된 부분 클래스이기 때문에)는 '열'이 아니기 때문에 Dynamic-Data는 인식하지 못합니다. 릴리스를 세 개의 개별 필드 (메이저, 마이너, 빌드)로 편집하고 싶지만 표시되면 단일 필드로 표시되기를 원합니다. DynamicData 프레임 워크는 복합 필드를 지원하지 않는 것으로 보이며 EF 모델에 있지 않은 경우 객체의 속성에 표시/바인딩되지 않습니다. 형식화 된 버전 번호 속성을 기본 표시 값으로 만드는 방법은 무엇입니까?

도움이 되었습니까?

해결책

데이터베이스에서 반환 된 데이터 가능/데이터 세트에 바인딩하는지 또는 릴리스 객체 자체에 바인딩하는지 확실하지 않습니다. 어떤 종류의 통제도.

데이터 세트/DataTable에 바인딩하는 경우 SQL을 변경하여 버전을 하나의 필드로 반환하십시오.

SELECT table1.Major + '.' + table1.Minor + '.' + table1.Build AS Version ....

그러나, 당신이 드롭 다운 목록에 물체에 바인딩하는 경우, 나는 생각한다 Tostring 메소드를 무시하면 DropdownList의 디스플레이 값이됩니다.

Public Overrides Function ToString() As String
    Return _major.ToString & '.' & _minor.ToString & '.' & _build.ToString
End Sub

다른 팁

동적 데이터 UI 사용자 정의를 수행 할 때와 마찬가지로 메타 데이터 클래스를 추가 할 수 있습니다. 그런 다음 메타 데이터에서 UIHINT를 만들어 동적 데이터에 사용자 정의 객체에 어떤 컨트롤을 사용할 것인지 알려줍니다. 예를 들어

[MetadataType(typeof(EMetadata))]
public partial class E{


    public string RefNR {
        get {
            return "E" + this.EntryID.ToString().PadLeft(5, '0');
        }
    }

}

public partial class EMetadata {
    [UIHint("Text")]
    public object RefNR;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top