Asp.Net:DetailsView控件 - 将用户发送到特定页面

时间:2010-01-10 16:44:46

标签: asp.net detailsview

在经典ASP中,如果您想将用户发送到特定页面,您将发送/创建一个URL,如:posts.asp?id = 24 ...指示帖子的查询字符串。

好吧,在使用绑定到数据集的DetailsView控件的asp.net中,我该如何做同样的事情? 在地址栏中,当我正在浏览记录时,我看到的只是posts.aspx,没有查询字符串部分。如何在页面上显示详细信息视图控件时将用户发送到posts.aspx?id = 24。

注意:我有兴趣将用户发送到特定的postid而不是数据集中的特定索引。

此致 熔体

1 个答案:

答案 0 :(得分:0)

快速执行此操作的方法是将页面加载中的详细信息视图绑定为:

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

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

MSDN提供了有关过滤和排序DataSet的更多信息。

编辑:为了更改为特定页面,可以在页面加载中执行以下操作:

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();