2010-01-10 4 views
0

기존 ASP에서 특정 페이지로 사용자를 보내려는 경우 posts.asp? id = 24와 같은 URL을 보내거나 만들 것입니다 ... querystring 게시물을 나타냅니다.Asp.Net : DetailsView 컨트롤 - 특정 페이지로 사용자 보내기

음, asp.net에서 데이터 세트에 바인딩 된 DetailsView 컨트롤을 사용하면 어떻게 동일한 작업을 수행 할 수 있습니까? 주소 표시 줄에서 레코드를 페이징 할 때 posts.aspx가 표시됩니다 (쿼리 문자열 부분 없음). 페이지에 대한 detailsview 컨트롤이있는 경우 사용자를 posts.aspx? id = 24로 보내려면 어떻게합니까?

참고 : 데이터 세트의 특정 색인이 아닌 특정 postid로 사용자를 보내려합니다.

감사 용융

답변

0

당신의 세부 사항으로 페이지로드에서 볼 결합하는 것이 작업을 수행하는 빠른 방법 :

string id = Request.QueryString["id"]; 
if(!string.IsNullOrEmpty(id)) 
{ 
    myDataSet.Filter = String.Format("id = {0}", id); 
} 

myDetailsView.DataSource = myDataSet; 
myDetailsView.DataBind(); 

MSDN 필터링 및 정렬 된 데이터 집합에 대한 자세한 정보가 있습니다.

편집 : 어쩌면 페이지로드에서 같은 것을 할 특정 페이지로 변경하려면 :

int selectedPage = -1; 
string id = Request.QueryString["id"]; 
if(!string.IsNullOrEmpty(id)) 
{ 
    for(int i = 0; i< myDataSet.Tables[0].Rows.Count; i++) 
    { 
    DataRow row = myDataSet.Tables[0].Rows[i]; 
    if(row["id"].ToString().Equals(id)) 
    { 
     selectedPage = i; 
     continue; 
    } 
    } 
} 

myDetailsView.DataSource = myDataSet; 
myDetailsView.PageIndex = selectedPage; 
myDetailsView.DataBind(); 
안녕하세요, 감사합니다, 나는 그것을 말로 표현으로 내 질문에 대답 않습니다, 불행하게도 필터링은 사용자를 의미
+1

수 다음/이전을 사용하여 레코드를 계속 페이 지합니다. 이 작업을 수행하고 데이터 세트를 그대로 유지하는 방법을 알고 있습니까? 답장을 보내 주셔서 감사합니다. – Melt

+0

나는 pageIndex를 찾는 방법으로 답변을 업데이트했습니다. 보통 DataSets를 다루지 않으므로 문서를 체크 아웃하는 경우 더 빠르고 쉬운 방법이 있습니다. http://msdn.microsoft.com/en-us/library/system.data.dataset_methods. 감사합니다. –