2010-01-10 54 views
0

在傳統的ASP中,如果你想發送一個用戶到一個特定的頁面,你可以發送/創建一個URL:posts.asp?id = 24 ... querystring表明職位。Asp.Net:DetailsView控制 - 發送用戶到特定頁面

那麼,在使用DetailsView控件綁定到數據集的asp.net中,我該如何做同樣的事情呢? 在地址欄中,我看到的是posts.aspx,當我通過記錄分頁時,沒有querystring部分。如何在頁面上發送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 2010-01-10 17:53:45

+0

我用一種找到pageIndex的方式更新了答案。我通常不處理數據集,因此如果您查看文檔,可能會有更快更簡單的方法來執行此操作:http://msdn.microsoft.com/zh-cn/library/system.data.dataset_methods。 aspx謝謝。 – 2010-01-11 01:13:50

相關問題