2012-04-18 95 views
1

我无法得到答案,我需要它!GridView通过ID获取数据

问题的确是我可以通过gridview上的选择获取数据通过id,但是然后我使用搜索选项我在页面上实现和gridview显示它得到的匹配结果但如果我按下选择它将重定向到与错误的页面的页面,而不是获得我选择的一个ID它获得该单元格的第一个位置上的字段的ID。

下面是代码:

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?