2012-04-18 2 views
1

Я не смог получить ответ на это, и мне это нужно плохо!GridView, получающий данные через id

Проблема в том, что я могу сделать через выборки в gridview получить данные через идентификатор, но затем я использую опцию поиска, которую я реализовал на странице, и gridview показывает те, которые она получает, которые соответствуют результату, но если я нажму кнопку select, он переадресует на страницу с неправильным идентификатором, isntead, чтобы получить идентификатор того, который я выбрал, он получает идентификатор поля, расположенного на 1-й позиции ячейки.

Вот код:

protected void Page_Load(object sender, EventArgs e) 
{ 

    TeamGest.DBLayer.DBLTeams dbl = new TeamGest.DBLayer.DBLTeams(); 
    GridView1.DataSource = dbl.List(); 
    GridView1.DataBind(); 

    TeamGest.DBLayer.DBLPlayers dbl1 = new TeamGest.DBLayer.DBLPlayers(); 
    GridView2.DataSource = dbl1.List(); 
    GridView2.DataBind(); 
} 

protected void MyMenu_MenuItemClick(object sender, MenuEventArgs e) 
{ 
    { 
     MyMultiView.ActiveViewIndex = Int32.Parse(e.Item.Value); 
     int i; 
     for (i = 0; i <= MyMenu.Items.Count - 1; i++) 
     { 
      if (i == Convert.ToInt32(e.Item.Value)) 
      { 
       MyMenu.Items[i].Text = MyMenu.Items[i].Text; 
      } 
      else 
      { 
       MyMenu.Items[i].Text = MyMenu.Items[i].Text; 
      } 
     } 
    } 
} 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = GridView1.SelectedRow; 

    Response.Redirect("DetalhesClube.aspx?Id="+row.Cells[0].Text); 

} 
protected void Button1_Click1(object sender, EventArgs e) 
{ 
    string searchStringTeam = TextBox1.Text; 
    GetTeamResults(searchStringTeam); 
} 
protected void GridView2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = GridView2.SelectedRow; 
    Response.Redirect("DetalhesJogador.aspx?Id=" + row.Cells[0].Text); 
} 

protected void Button2_Click(object sender, EventArgs e) 
{ 
    string searchStringPlayer = TextBox2.Text; 
    GetPlayerResults(searchStringPlayer);  
} 

ответ

0

Вместо добавления row.Cells[0].Text в строке запроса, используйте элемент управления метки в ItemTemplate в виде сетки, использовать Eval в сторону сценария для заполнения control.once вид сетки получает заполненная метка также будет заполнена значением, указанным в сценарии eval.

Теперь используйте функцию findcontrol C#, чтобы получить значение метки внутри сетки и добавить это значение в строку запроса.

ссылки: How to find control in TemplateField of GridView?