Asp.Net: DetailsView Control - отправка пользователя на определенную страницу - PullRequest
0 голосов
/ 10 января 2010

В классическом ASP, если вы хотите отправить пользователя на определенную страницу, вы должны отправить / создать URL-адрес, например: posts.asp? Id = 24 ... строка запроса, указывающая сообщение.

Что ж, в asp.net, используя элемент управления DetailsView, связанный с набором данных, как мне сделать то же самое? В адресной строке все, что я вижу, это posts.aspx, когда я пролистываю записи, а не часть строки запроса. Как отправить пользователя на posts.aspx? Id = 24, когда на странице есть элемент управления подробным просмотром.

Примечание. Я заинтересован в том, чтобы отправить пользователя на определенный пост, а не на определенный индекс в наборе данных.

С уважением Растопить

1 Ответ

0 голосов
/ 10 января 2010

Быстрый способ сделать это состоит в том, чтобы связать ваше представление информации в загрузке страницы как:

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