2012-06-26 4 views
0

저는 작은 새 Asp.net C# 프로젝트를 만들고 있지만 새로운 것입니다.Asp.net 드롭 다운 목록에 데이터베이스 목록보다 많은 항목이 있습니다.

나는 데이터 테이블에 데이터를 저장하는 폼과 from을 다시 채우는 빠른 개요 DataGrid를 DataGrid의 라인을 편집해야합니다.
양식의 드롭 다운 목록에서 값 L, VL, M, H, VH를 테스트하기 위해 별도의 우선 순위 DB 테이블/목록을 만들었습니다. 삭제 된 항목 만 추가되었습니다. 나는 드롭 다운 상자에 목록을 가져올 수 있고 모든 5 개의 값을 볼 수 있지만 목록은 거대하며 또 다른 45 개의 빈 항목을 포함합니다.


만약 내가 ddl_priority.DataTextField = "ID"로 변경하면; 위에서 아래까지의 목록이 1에서 45까지 표시되고 1,2,3,4,5에서 내 값이되고 "SQL 위치"로 값을 제한하려고했지만 작동하지 않았습니다.
드롭 다운 내 코드 목록은;

public void Populate_priority_dropdownlist() 
{ 
    ad = new SqlDataAdapter("select * FROM x_priority_list_tbl", con); 
    //ad = new SqlDataAdapter("select [Priority] FROM [x_priority_list_tbl] where [ID] < 7 ", con); 
    ad.Fill(ds, "s"); 
    dt = ds.Tables["s"]; 
    ddl_priority.DataSource = dt; 

    ddl_priority.DataValueField = "Priority"; 
    ddl_priority.DataTextField = "Priority"; 
    ddl_priority.DataBind(); 
} 

어딘가 설정되어 있어야하나요?

+0

마크 업을 볼 수 있습니까? – IrishChieftain

답변

1

우선 순위 (또는 PriorityName?) 열 값으로 null과 같은 테이블 항목이있는 것 같습니다. 아마 그걸 고쳐야 할거야. 유효한 PriorityName 값이있는 레코드 만 표시되도록 선택 쿼리에 where 조건을 항상 추가 할 수 있습니다.

ad = new SqlDataAdapter("select * FROM x_priority_list_tbl 
       WHERE PriorityName is not null and PriorityName<>''", con); 

또한 텍스트 필드로 DataValueField 속성 값과 설정 PriorityName로 ID를 설정합니다.

ddl_priority.DataValueField = "ID"; 
ddl_priority.DataTextField = "PriorityName"; 

테이블을 가정 이름 IDPriorityName와 열이 있습니다. 열 이름이 다른 경우 코드에서 적절하게 변경할 수 있습니다.

관련 문제