网格视图通过 id asp.net 获取数据

本文关键字:net 获取 数据 asp id 视图 网格 | 更新日期: 2023-09-27 18:31:13

问题确实是我确实可以通过网格视图上的选择通过 ID 获取数据,但随后我使用我在页面上实现的搜索选项,网格视图显示它得到的与结果匹配的那些,但如果我按选择它会重定向到具有错误 ID 的页面, 不是要获取我选择的那个的 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);    
    }

网格视图通过 id asp.net 获取数据

不要使用单元格值。这就是DataKeys集合的用途:

<asp:GridView ID="GridView1" runat="server" DataKeyNames="ID, SomeOtherColumn" ...>

在代码隐藏中,您所需要的只是行索引:

var rowIndex = 0;
var ID = (int)GridView1.Rows[rowIndex]["ID"];