2012-04-30 4 views
4

Sir/madam 이제 내 문제는 드롭 다운 목록과 텍스트 상자를 사용하여 페이지의 눈금보기를 필터링하려고하는 것입니다.드롭 다운 목록 및 텍스트 상자 필터를 사용하는 표보기 검색?

나는 우리가 같은 SQL을 쓰는처럼 말을 의미 : 열 (위의 진술에서 roll_no가) 드롭 다운 목록에서 선택해야합니다 지금은 어떤 것을

Select * from student where roll_no = 101; 

오른쪽,

및 값 (위의 명령문에서 101)은 텍스트 상자에 입력해야합니다. 내가 드롭 다운 목록 버튼을 클릭하여 텍스트 상자의 값을 사용하여 내 그리드보기를 채우려 한마디로

.. 내가 데이터 세트와 테이블 어댑터를 사용하고 개발을 위해

.

이 저를 도와주세요 .. 먼저 우리에게 약간의 코드를 보여 경우

답변

0

그것이 도움이 될 것입니다 ..

당신이 상점처럼 뭔가를 시도 할 수 있습니다 : 당신의 코드 숨김에서

, 항목을 드롭 다운 목록에 추가하십시오.

List<yourObject> list = new List<yourObject>(); 
foreach (yourObject i in list) 
{ 
    DropdownList1.Items.Add(new ListItem("" i.name, "" + i.id)); 
} 

여기 예를 들어, i.name은 특정 학생의 이름 일 수 있으며, i.id는 해당 학생과 관련된 ID입니다.

이 같은 true로 설정하여 드롭 다운리스트의 AutoPostBack은 속성을 가지고 있는지 확인하십시오 :

그런 다음 드롭 다운리스트의 선택된 인덱스 변경된 경우에, 다음을 수행
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
     onselectedindexchanged="DropDownList1_SelectedIndexChanged"> 

:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
yourDataControl.DataSource = someMethod(Convert.toInt32(DropDownList1.SelectedValue)); 
yourDatacontrol.DataBind(); 
} 

내가 말했듯이, 당신이 무엇을하려고하는지, 어떻게하려고하는지 완전히 확신하지 못합니다. 내가 설명하는 방식으로 텍스트 상자에 특정 값을 입력 할 필요가 없습니다. 드롭 다운 목록에서 항목을 선택하면 자동으로 값을 가져옵니다.이 경우 드롭 다운 목록에서 선택한 항목과 연결된 ID입니다.

+0

선생님/부인, 물론 나는 list.bt 내 드롭 다운을 채웠다 실제 문제는 내가 비 키 속성을 사용하여 데이터베이스를 필터링하고 싶습니다 – user1366330

1

드롭 다운 목록 (콤보 상자)과 텍스트 상자를 사용하여 다음과 같은 방법으로 내 DataGridView을 필터링하고 이것이 사용자가 찾고있는 것이라고 생각합니다.

먼저 DataGridView을 채우십시오. DataSetTableAdapters을 사용하고 있다고 말합니다. DataGridView에 데이터를 연결하기 위해 BindingSource을 사용하고있는 것으로 추측됩니다. 이 경우 BindingSource을 통해 Filter 데이터를 사용할 수 있습니다.

내 셋업이 유사합니다

enter image description here

내 콤보는 내가 내 필터에 사용할 필드를 포함하고 텍스트 상자 내가 적용됩니다 값입니다. 콤보 상자의 값은 사용자에게 친숙한 이름이므로 필터링 대상 필드를 이해합니다.필터를 적용 할 수

코드는 다음과 같습니다

는, 콤보 상자의 텍스트 이름 다음 텍스트 상자의 텍스트를 받고 일을하고 BindingSource에에 필터를 적용하고 기본적으로 무엇을
private void ApplyFilter() 
{ 
    var filterEntered = FilterTextBox.Text.Trim().ToLower(); 

    MyBindingSource.RemoveFilter(); // remove previous filter 

    string filterText = string.Empty; 
    string filterComboText = string.Empty; 

    switch (FilterComboBox.Text) 
    { 
     case "Profile": 
      filterComboText = "TSProfile"; // column name in the query 
      break; 
     case "User Id": 
      filterComboText = "TSUserId"; 
      break; 
     case "Center": 
      filterComboText = "TSCenter"; 
      break; 
     case "Prefix": 
      filterComboText = "TSPrefix"; 
      break; 
    } 

    filterComboText = filterComboText + " = '"; 

    filterText += (string.IsNullOrEmpty(filterComboText) ? string.Empty : filterComboText); 
    filterText += (!string.IsNullOrEmpty(filterText) && !string.IsNullOrEmpty(filterEntered) ? filterEntered + "'" : string.Empty); 

    MyBindingSource.Filter = filterText; 
} 

.

MSDN는 필터링 그게 전부에 대한 기사가 전체 샘플 코드를 포함하고있다.

내가 추천하는 한 가지는 필터를 쉽게 제거 할 수있는 방법을 사용자에게 제공하는 것인데 필터 제거 버튼을 사용합니다.

관련 문제