0

従来の ASP では、ユーザーを特定のページに送りたい場合、次のような URL を送信/作成します: posts.asp?id=24 ... 投稿を示すクエリ文字列。

さて、データセットにバインドされた DetailsView コントロールを使用する asp.net で、同じことを行うにはどうすればよいでしょうか? レコードをページングしているときに、アドレス バーに posts.aspx しか表示されず、クエリ文字列の部分は表示されません。ページの詳細ビュー コントロールの場合、ユーザーを posts.aspx?id=24 に送信するにはどうすればよいですか。

注: データセット内の特定のインデックスではなく、特定のポスト ID にユーザーを送信することに関心があります。

よろしくメルト

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には、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();
于 2010-01-10T17:17:56.147 に答える