如何使用C#和ASP.NET将数据从Gridview行解析到另一个页面

问题描述 投票:-1回答:1

我想从ASP.NET中的Gridview解析一行数据到显示上一页行数据内容的第二页。我的Gridview已经链接到数据库。

我目前的Gridview看起来像这样:

enter image description here

当我点击发送详细信息超链接时,我想实现这一点:

enter image description here

如果我单击第二行,该行的数据将显示在下一页中

以下代码是我在链接按钮itemTemplate下面的代码:

<ItemTemplate>
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("name") %>'></asp:Label>
       <asp:LinkButton ID="viewTours" runat="server" CommandName="view" CommandArgument='<%# Bind("name") %>' PostBackUrl='<%#"~/details.aspx?RowIndex=" + Container.DataItemIndex %>'>View</asp:LinkButton>
        </ItemTemplate>

这是我要从第二页加载数据的页面加载方法。

     protected void Page_Load(object sender, EventArgs e)
    {

    if (this.Page.PreviousPage != null)
    {
        int rowIndex = int.Parse(Request.QueryString["RowIndex"]);
        GridView GridView = (GridView)this.Page.PreviousPage.FindControl("GridView");
        GridViewRow row = GridView.Rows[rowIndex];
        name.Text = (row.FindControl("name") as Label).Text;
        //name.Text = row.Cells[0].Text; (this did not work either, i got the same error)
    }
}

然而,我在name.Text上得到了一条波浪线,说它不存在,即使我在html(第二)页面的设计视图中有一个带有id名称的标签。

我怎样才能使我能够将选定的Gridview行中的数据解析到另一个页面?假设我可以自定义第二页并将标签放在我喜欢的任何地方。

这是我的gridview的代码。由于我的绑定是通过UI完成的,因此我没有太多的代码,除了将选定的gridview行重定向到另一个页面。

    protected void GridView_SelectedIndexChanged(object sender, EventArgs e)
{
    Session["tour"] = GridView;
    Response.Redirect("tourDetails.aspx");


}

我仍然得到标签文本不存在的错误,当它实际存在于页面本身时。

enter image description here

带有id = name的标签图片:

enter image description here

我的标签包含runat =“server”:enter image description here

c# asp.net gridview webforms
1个回答
0
投票

您将绑定数据与结构混淆。当你试图用name键获得一个控件时,你真的是指Label1,所以改变

name.Text = (row.FindControl("name") as Label).Text;

name.Text = (row.FindControl("Label1") as Label).Text;
© www.soinside.com 2019 - 2024. All rights reserved.