0

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

那么,在 asp.net 中使用绑定到数据集的 DetailsView 控件,我该如何做同样的事情?在地址栏中,当我翻阅记录时,我看到的只是posts.aspx,没有查询字符串部分。当页面上的 detailsview 控件时,如何将用户发送到 posts.aspx?id=24。

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

问候融化

4

1 回答 1

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();
于 2010-01-10T17:17:56.147 回答