在经典ASP中,如果您想将用户发送到特定页面,您将发送/创建一个URL,如:posts.asp?id = 24 ...指示帖子的查询字符串。
好吧,在使用绑定到数据集的DetailsView控件的asp.net中,我该如何做同样的事情? 在地址栏中,当我正在浏览记录时,我看到的只是posts.aspx,没有查询字符串部分。如何在页面上显示详细信息视图控件时将用户发送到posts.aspx?id = 24。
注意:我有兴趣将用户发送到特定的postid而不是数据集中的特定索引。
此致 熔体
答案 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();