2011-09-16 3 views
1

RadFilter가 열을 올바르게 감지하지 못하는 문제가 있습니다. RadGrid를 Asp의 코드를 통해 바인딩합니다.RadFilter가 열을 올바르게 감지하지 못하는 이유는 무엇입니까?

RadGrid1.DataSource = myDataSource; RadGrid.DataBind();

RadFilter는 바인드되고있는 사람을 무시하고 바인딩하는 열만 바인딩합니다. 이것은 알려진 문제입니까? 이 문제에 관해 이야기하는 스레드는 없었습니다. 즉시 도움을 기다리고 있습니다.

감사합니다. Wasim.

+1

세 번째 단락은 의미가 없습니다. 우연히 명확히 할 수 있습니까? – KreepN

+0

을 사용할 경우 RadFilter는 해당 목록에서 해당 열 이름을 인식하지 못합니다. 잘 나는 그것을 알아 냈다. RadFilter의 버그는 DataField의 정적 속성을 가진 열만 고려해야합니다. 동적 데이터 바인딩을 지원하지 않습니다. – Wasim

답변

2

올바르게 이해하고 있다면 Grid의 DataSource에 표시되지 않은 모든 필드의 FilterFieldEditors를 RadFilter에 추가해야합니다.

다음 코드를 사용하여 동적으로 필터를 추가 할 수 있습니다.

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    if (!IsPostBack) 
    { 
     var fieldName = "myDynamicFilterField"; 
     var friendlyName = "Friendly Dynamic Field"; 
     var newTextFieldEditor = new RadFilterTextFieldEditor(); 

     filter.FieldEditors.Add(newTextFieldEditor); 
     newTextFieldEditor.FieldName = fieldName;  // name filter will used for filter exressions 
     newTextFieldEditor.DisplayName = friendlyName; // name use will see when they selected a field to filter 

     // ** Repeat for all dynamic fields ** 
    } 
} 

자동 생성 된 열 및 사용자 정의 추가 열을 사용하여 작동 버전을 얻을 수 있었지만 다른 많은 문제가 발생했습니다. 위의 그림과 같이 모든 필터 필드를 동적으로 생성하고 데이터 소스에서 필터 표현식을 그리드에 적용했습니다.

관련 문제