2010-11-18 2 views
27

목록 상자에 바인딩하는 데이터 집합이 있습니다. 그러나 두 필드를 결합하여 DataTextField를 구성하려고합니다. 이것이 가능합니까 아니면 데이터 행을 반복해야합니까?DataTextField에서 두 필드를 결합합니다. 이것이 가능한가?

lstAddressDropdown.DataSource = dsAddress; 
lstAddressDropdown.DataTextField = "StreetAddress" + "Place"; 
lstAddressDropdown.DataBind(); 
lstAddressDropdown.Items.Insert(0, new ListItem("Please select")); 

데이터 세트가 웹 서비스에서 다시 제공되므로 스토어드 프로 시저를 변경하여 해당 열을 결합 할 수는 없습니다.

+0

데이터 소스에서 한 필드의 데이터를 가져올 수 없습니까? –

답변

39

계산 된 열인 데이터 테이블에 열을 추가하고 datatextfield (docs: Multi-field Data Binding)로 사용할 수 있습니다.

은 그래서 예를 들어, 당신은 이런 식으로 뭔가를 할 수 위 :

dsAddress.Tables[0].Columns.Add("StreetAndPlace",typeof(string),"StreetAddress + Place"); 
lstAddressDropdown.DataSource = dsAddress; 
lstAddressDropdown.DataTextField = "StreetAndPlace"; 
lstAddressDropdown.DataBind(); 
lstAddressDropdown.Items.Insert(0, new ListItem("Please select")); 

"StreetAddress + ' ' + Place"

+0

나는 그에게 고마워. –

+1

2002 년에 작성된 다중 필드 데이터 바인딩 기사가 여전히 도움이된다고 놀랐다. –

2

와 위에 표시된 표현 문자열을 교체 StreetAddress와 장소 사이에 공백을 추가에 따라 쿼리를 수정하는 당신 위의 쿼리 이름에서 오라클

SELECT 
'<B>'||SHORTNAME||'</B><br/>('||DEPARTMENT||')' AS USERNAME 
FROM TABLE 

의 요구 사항 는 굵게과 부서 아래에 표시됩니다 다음과 같이 을 표시합니다.

<b>Mr. Jagdeep Mankotia</b><br> 
(Web Application Development) 
-1

더 이상 linq를 사용하여 루프를 작성하지 않아도됩니다.

  • 두 필드를 반환하는 클래스를 만듭니다.

    공용 부분 클래스 EmployeeDropdownInfo { public int person_id {get; 세트; } 공용 문자열 employee_name {get; 세트; } }

  • 데이터를 가져 와서 linq을 사용하여 필요한 것을 필터링하고 반환하십시오.

    목록 요청자 = (dc.sp_GetEmployees (의 t에서)는 새로운 EmployeeDropdownInfo()를 { person_id로 = t.person_id, EMPLOYEE_NAME = t.first_name + ""+ t.last_name } 선택 ). ToList ();

    EmployeeDropdownInfo firstEntry2 = 새 EmployeeDropdownInfo() {person_id = 0, employee_name = "- 직원 선택 -"}; 요청자. 삽입 (0, firstEntry2); ddlRequestor.DataSource = requestors; ddlRequestor.DataTextField = "employee_name"; ddlRequestor.DataValueField = "person_id"; ddlRequestor.DataBind();

이렇게하면 proc을 변경할 필요가 없으며 드롭 다운에는 대부분 두 가지 값만 필요합니다.

+0

나는 Linq를 사용하여이 작업을 수행하지 않았다. . 데이터 세트를 사용하여 완료해야 함 –

0

나는 이것이 이미 대답되었지만이 문제를 해결하는 더 쉬운 방법이 있다고 생각한다.

선택 명령을 수정하고 표시 할 2 DataTextField를 결합하십시오.

DataSource.SelectCommand = "Select (Column1 || ' ' || Column2) As Column1And2 From Table"; 

RadioButtonList1.DataTextField = "Column1And2"; 

희망이 있으면 도움이 될 수 있습니다. 아마도 가장 좋은 방법은 아니지만 이해하기가 훨씬 쉽습니다.

관련 문제