2012-10-14 2 views
0

내가이 테이블 내 ASP 페이지에 400000 행이 데이터베이스에서 테이블을 내 드롭 다운 목록 (ddlPlaintiffName가) 에서이 방법여분의 거대한 datatable에서 드롭 다운 목록을 채우는 방법?

 

private void FillPlaintiff() 
    { 

     //declare connection by pass connection string from web.config 
     SqlConnection sqlcon = new SqlConnection 
      (ConfigurationManager.ConnectionStrings["SystemConn"].ConnectionString); 
     //declare sql statment as astring variable 

     SqlCommand sqlcom = new SqlCommand(); 
     sqlcom.Connection = sqlcon; 
     sqlcom.CommandType = CommandType.StoredProcedure; 
     sqlcom.CommandText = "proc_SelectPlaintiff"; 



     DataTable ds = new DataTable(); 
     //fill data set with data adabter that contain data from database 
    // sad.Fill(ds); 
     sqlcon.Open(); 
     SqlDataAdapter sad = new SqlDataAdapter(sqlcom); 

     sad.Fill(ds); 

     ddlPlaintiffName.DataSource = ds; 
     ddlPlaintiffName.DataBind(); 
     ddlPlaintiffName.Items.Insert(0, "--select --"); 
     sqlcon.Close(); 

    } 


을 채우기 가지고 있지만 모든 내 부하 내가이

을 피할 수있는 방법을 아주 아주 천천히 다시 게시
+5

당신의 UI를 _rethink_해야하고 드롭 다운 대신 자동 완성/검색 옵션이 있어야한다고 제안합니다. hunderd 옵션조차 드롭 다운의 UI가 좋지 않습니다. – Oded

+0

@Oded 완벽하게 말하기 -이 문제에 대한 해결책 (이 질문에 대한 답)이 기능하지 않는 UI를 초래하기 때문에 시작하는 것이 기술적 인 문제는 아닙니다. – TomTom

답변

4

우선 큰 테이블을 드롭 다운 목록에 사용하면 안됩니다. 사용자는 쉽게 가치를 찾을 수 없기 때문에 그에게 쓸모가 없습니다. Ajax는 데이터를 드롭 다운 목록에 표시해야하지만 검색 기준을 기반으로 몇 가지 검색을 제공해야합니다. 검색은 사용자가 세 개 이상의 문자를 입력 할 때만 시작해야하며 그렇지 않으면 아약스 기반 쿼리도 느려집니다.

아이디어

jQuery Searchable DropDown Plugin Demo

1

@Oded에 의한 대답은 최선의 선택을 얻기 위해 다음 페이지를 참조하시기 바랍니다. 나는 DropDownList와 같은 감각이 없다고 생각한다.

반면에 시간 문제는 피하기 어렵습니다. ViewState을 사용할 수 있지만 400,000 개의 행이 너무 큼 ...! 어쩌면이 테이블에 어떤 종류의 데이터를 저장하는지 설명하면이 작업을 수행 할 수있는 대체 방법에 대해 생각할 수 있습니다.

1

먼저 "수행하지 마십시오"라는 설명과 대답이 올바른 것입니다 수십 가지 항목 이상이 사용자에게는 거의 쓸모가 없습니다.

둘째로, 사용자 인터페이스를 변경할 수없는 경우 질문에 대한 대답은 캐싱을 도입하는 것입니다. 이 작업에는 몇 가지 방법이 있습니다. 어느 쪽을 선택했는지는 특정 병목 현상에 달려 있지만, 먼저 this을 읽으면됩니다.

관련 문제