Javascript 使用代码隐藏为Gridview中的DropDownList设置数据源时出错

Javascript 使用代码隐藏为Gridview中的DropDownList设置数据源时出错,javascript,c#,asp.net,gridview,Javascript,C#,Asp.net,Gridview,我有一个GridView来显示我的产品,我还制作了EditButton和DeleteButton来更新和删除GridView中的产品。当我单击EditButton时,我的gridview有一个DropDownList来显示我的ProductType,但我收到一条错误消息: 对象引用未设置为对象的实例 此图片将显示我从何处获得该错误: 这是我用来填充DropDownList数据源的方法: 谢谢你的帮助 将您的Dopdownlist绑定代码放入if((e.Row.RowState&DataCo

我有一个GridView来显示我的产品,我还制作了EditButton和DeleteButton来更新和删除GridView中的产品。当我单击EditButton时,我的gridview有一个DropDownList来显示我的ProductType,但我收到一条错误消息:

对象引用未设置为对象的实例

此图片将显示我从何处获得该错误:

这是我用来填充DropDownList数据源的方法:

谢谢你的帮助


将您的
Dopdownlist
绑定代码放入
if((e.Row.RowState&DataControlRowState.Edit)>0)
RowDataBound
事件:

protected void gridviewSanPham_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // check if dropdownlist in edittemplate
        if ((e.Row.RowState & DataControlRowState.Edit) > 0)
        {
           DropDownList drop = (DropDownList)e.Row.FindControl("cboTypeID");

           drop.DataSource = FillLoaiSP();
           drop.DataBind();
        }
    }
 }

它总是会抛出错误,因为您试图在
gridviewSanPham_RowDataBound
方法中查找下拉列表。只需尝试在
gridviewSanPham_RowEditing
方法中查找下拉列表。因为在
RowDataBound
事件中,它将迭代所有行,包括页眉和页脚,因此在页眉和页脚行的情况下,它将抛出空对象引用错误


在进行编辑操作时,您的下拉列表也会出现,因此您可以在
gridviewSanPham_RowDataBound
方法中为数据行和操作设置筛选器。但是强烈建议您将下拉列表绑定到
gridviewSanPham_RowEditing
方法中。

可能的重复项您还可以添加一个屏幕截图来显示出现在
SqlDataAdapter
对象
da
中的值。请共享您的gridview html标记并填充ISP代码。这将有助于我们确定根本原因。您是否在FindControl(“cboTypeID”)中提供了正确的下拉ID作为起始名称?看起来您在此处提供了复选框ID。你能分享你的gridview HTML吗?@Prabhat是的,我在问题中提供了我的图片来显示我的FillLoaiSP方法谢谢你的帮助。我会试试的。谢谢你的帮助。我会尽力的谢谢你的帮助。你让我开心。我确实喜欢你的代码,我的问题已经解决了。