我的用户控制页面中定义了一个名为GridControl.ascx的
<asp:GridView ID="GridProd" runat="server" RowStyle-CssClass="GridProdGrid"
BackColor="White" BorderColor="#DEDFDE" BorderStyle="None"
BorderWidth="1px" CellPadding="10" ForeColor="Black" GridLines="Vertical"
AutoGenerateEditButton="True" OnRowEditing="GridProd_RowEditing"
AllowSorting="True" OnSorting="Set_Sort" DataKeyNames="ProductID"
AutoGenerateColumns="False" AutoGenerateSelectButton="True"
OnSelectedIndexChanging="GridProd_SelectedIndexChanging">
我在ProductList.aspx上使用此控件。 基本上我想在我的另一个名为ItemList.aspx的页面上只显示所选项目。我试图使用以下代码,但它抛出空引用异常。
GridView gd = (GridView)this.Page.PreviousPage.FindControl("GridProd");
/*For each row in GridView gd obtained from previous page*/
foreach (GridViewRow rows in gd.Rows)
{
/*We will get the checkbox to check if it's checked or not*/
CheckBox cb = (CheckBox)rows.FindControl("checktoadd");
if (cb.Checked)
{
string prodname = rows.Cells[2].Text;
string prodprice = rows.Cells[4].Text;
string categoryname = rows.Cells[5].Text;
dt.Rows.Add(prodname,prodprice,categoryname);
}
/*Binding the datatable to the new gridview*/
gridorderlist.DataSource = dt;
gridorderlist.DataBind();
}
当我没有使用usercontrol时,我在ProductList.aspx页面中定义了这个gridview,它运行正常。我很困惑如何访问usercontrol页面中定义的gridview。