C# 从gridview传递数据时未将对象引用设置为对象实例

C# 从gridview传递数据时未将对象引用设置为对象实例,c#,asp.net,.net,gridview,C#,Asp.net,.net,Gridview,我正在将值从gridview传递到下一页。gridview连接到数据库。gridview按我所需显示数据,但当我尝试将gridview的行数据传递到下一页时,它抛出错误“对象引用未设置为对象实例” gridview如下所示: <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" RowStyle-BackColor="#A1DCF2" Al

我正在将值从gridview传递到下一页。gridview连接到数据库。gridview按我所需显示数据,但当我尝试将gridview的行数据传递到下一页时,它抛出错误“对象引用未设置为对象实例”

gridview如下所示:

      <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
      RowStyle-BackColor="#A1DCF2" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000"
   runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" AllowPaging="True">
   <AlternatingRowStyle BackColor="White" ForeColor="#000000"></AlternatingRowStyle>
    <Columns>
    <asp:BoundField DataField="TaskId" HeaderText="TaskId" ItemStyle-Width="30" InsertVisible="False" ReadOnly="True" SortExpression="TaskId" />
    <asp:BoundField DataField="Title" HeaderText="Title" ItemStyle-Width="150" SortExpression="Title" />
    <asp:BoundField DataField="Body" HeaderText="Body" SortExpression="Body" />
    <asp:BoundField DataField="Reward" HeaderText="Reward" SortExpression="Reward" />
    <asp:BoundField DataField="TimeAllotted" HeaderText="TimeAllotted" SortExpression="TimeAllotted" />
    <asp:BoundField DataField="PosterName" HeaderText="PosterName" SortExpression="PosterName" />
    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton ID="lnkDetails" runat="server" Text="Send Details" PostBackUrl='<%# "~/test/Tasks.aspx?RowIndex=" + Container.DataItemIndex %>'></asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
 <HeaderStyle BackColor="#3AC0F2" ForeColor="White"></HeaderStyle>

 <RowStyle BackColor="#A1DCF2"></RowStyle>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ABCD %>" SelectCommand="SELECT * FROM [Task]"></asp:SqlDataSource>
我在下面的行中收到一条错误消息:

   GridViewRow row = GridView1.Rows[rowIndex];

似乎
FindControl
方法实际上没有找到该控件,从而使
GridView1
变量为空。确保控件位于页面内部并且名称正确

编辑:

如果您使用的是母版页,那么
FindControl
确实存在一些问题。Rick Strahls在以下文章中对此进行了解释:

他还举了一个例子,说明如何让它发挥作用。基本上,您必须从母版页找到内容控件(使用
page.master.FindControl
)。然后,从这一点上,你应该能够达到你的网格控制

在您的场景中,由于您需要上一页中的控件:

var GridView1 = page.PreviousPage.Master.FindControl("ContentContainer").FindControl("GridView1") as GridView;

似乎
FindControl
方法实际上没有找到该控件,从而使
GridView1
变量为空。确保控件位于页面内部并且名称正确

编辑:

如果您使用的是母版页,那么
FindControl
确实存在一些问题。Rick Strahls在以下文章中对此进行了解释:

他还举了一个例子,说明如何让它发挥作用。基本上,您必须从母版页找到内容控件(使用
page.master.FindControl
)。然后,从这一点上,你应该能够达到你的网格控制

在您的场景中,由于您需要上一页中的控件:

var GridView1 = page.PreviousPage.Master.FindControl("ContentContainer").FindControl("GridView1") as GridView;

似乎
FindControl
方法实际上没有找到该控件,从而使
GridView1
变量为空。确保控件位于页面内部并且名称正确

编辑:

如果您使用的是母版页,那么
FindControl
确实存在一些问题。Rick Strahls在以下文章中对此进行了解释:

他还举了一个例子,说明如何让它发挥作用。基本上,您必须从母版页找到内容控件(使用
page.master.FindControl
)。然后,从这一点上,你应该能够达到你的网格控制

在您的场景中,由于您需要上一页中的控件:

var GridView1 = page.PreviousPage.Master.FindControl("ContentContainer").FindControl("GridView1") as GridView;

似乎
FindControl
方法实际上没有找到该控件,从而使
GridView1
变量为空。确保控件位于页面内部并且名称正确

编辑:

如果您使用的是母版页,那么
FindControl
确实存在一些问题。Rick Strahls在以下文章中对此进行了解释:

他还举了一个例子,说明如何让它发挥作用。基本上,您必须从母版页找到内容控件(使用
page.master.FindControl
)。然后,从这一点上,你应该能够达到你的网格控制

在您的场景中,由于您需要上一页中的控件:

var GridView1 = page.PreviousPage.Master.FindControl("ContentContainer").FindControl("GridView1") as GridView;

在我看来,当“this.Page.PreviousPage!=null”为真时,gridview没有任何绑定数据。也就是说,除非在其他初始化处理程序中绑定数据


因为没有数据,所以没有行,这意味着GridView1.Rows[rowIndex]将为null。

在我看来,当“this.Page.PreviousPage!=null”为true时,gridview没有任何绑定数据。也就是说,除非在其他初始化处理程序中绑定数据


因为没有数据,所以没有行,这意味着GridView1.Rows[rowIndex]将为null。

在我看来,当“this.Page.PreviousPage!=null”为true时,gridview没有任何绑定数据。也就是说,除非在其他初始化处理程序中绑定数据


因为没有数据,所以没有行,这意味着GridView1.Rows[rowIndex]将为null。

在我看来,当“this.Page.PreviousPage!=null”为true时,gridview没有任何绑定数据。也就是说,除非在其他初始化处理程序中绑定数据



因为没有数据,所以没有行,这意味着GridView1.Rows[rowIndex]将为空。

我能做些什么?所以我不应该使用previouspage命令?但是当我使用上面的代码时,它会说“页面”不在当前页面中context@Mash对不起,我忘了输入上一页的访问权限。再次查看我编辑的答案。当然,请记住您的容器名称可能不同。对此我能做些什么?因此我不应该使用previouspage命令?但是当我使用上面的代码时,它会说“页面”不在当前页面中context@Mash对不起,我忘了输入上一页的访问权限。再次查看我编辑的答案。当然,请记住您的容器名称可能不同。对此我能做些什么?因此我不应该使用previouspage命令?但是当我使用上面的代码时,它会说“页面”不在当前页面中context@Mash对不起,我忘了输入上一页的访问权限。再次查看我编辑的答案。当然,请记住您的容器名称可能不同。对此我能做些什么?因此我不应该使用previouspage命令?但是当我使用上面的代码时,它会说“页面”不在当前页面中context@Mash对不起,我忘了输入上一页的访问权限。再次查看我编辑的答案。当然,请记住,您的容器名称可能不同。我理解这一点。一件有趣的事情是,当我使用相同的设置而没有任何母版页时,它可以工作。这有什么关系?问题与数据无关。如果是这样,那么该行不会抛出
NullReferenceException
。啊,您最初的问题没有提到您正在使用母版页。这是有道理的。很高兴你成功了。:)我明白。一件有趣的事是,当我使用相同的设置时,没有