1

我正在使用 Gridview 来显示一些数据。在gridview 的EditItemTemplate 中,我将DropDownList 用于gridview 的列之一。gridview 的 DataSource 是一个表“UserEntries”。Dropdown的Datasource是另一个表“TypeEntries”。TypeEntries 的列是 - Guid 和 TypeName。Guid 是下拉列表的 DataValueField,TypeName 是 DataTextField。我将下拉菜单的 DataValueFiels 存储在 UserEntries 表中。

现在,当用户单击 gridview 的编辑按钮时,如何使用“TypeEntries”表填充下拉列表?我在用

    Dropdownlist tempddl = new Dropdownlist();
    tempddl = (Dropdownlist)gvUserData.FindControl("ddlTypeListInGrid");
    tempddl.DataSource = _section.GetTypeEntries();
    tempddl.DataBind();

但它不工作。谁能告诉我任何其他方式来完成这项任务?提前致谢。

4

5 回答 5

1

如果您收到“对象引用未设置为对象的实例”。在异常情况下,这意味着未找到“ddlTypeListInGrid”控件。因此,您不能将 NULL ( NOTHING ) 转换为目标类型。

您可以在错误页面的生命周期中执行此代码。在以后的 oage 事件之一(Load、LoadComplete 等)中尝试它,或者检查容器是否真的包含 ID 为“ddlTypeListInGrid”的控件。

于 2009-01-16T12:13:41.347 回答
0

作为旁注(与您的问题无关,仅供参考)以下行:

 DropDownList tempddl = new DropDownList();       

可能 :

 DropDownList tempddl;

您不需要创建 DropDownList 的新实例,因为在下一行,您尝试找到一个名为“ddlTypeListInGrid”的实例。然后,正如 Tcks 所说,如果 ddlTypeListInGrid 控件不存在,那么您可能会收到 NullReferenceException。

于 2009-01-16T14:01:39.647 回答
0

C# 区分大小写,您应该DropDownList改用。

于 2009-01-16T11:43:03.890 回答
0

您是否正在寻找 Convert.ChangeType,我必须查看更多代码才能解决您的问题。

于 2009-01-16T12:06:03.360 回答
0

我正在上传整个函数代码。

protected void gvUserData_OnRowEditing(object sender, GridViewEditEventArgs  e)
{
    gvUserData.EditIndex = e.NewEditIndex;

    gvUserData.DataSource = _section.GetUserEntries();
    gvUserData.DataBind();

    DropDownList tempddl = new DropDownList();       //I am not sure whether this is correct or not..        
    tempddl = (DropDownList)gvUserData.FindControl("ddlTypeListInGrid");
    tempddl.DataSource = _section.GetTypeEntries();
    tempddl.DataBind();        

}
于 2009-01-16T12:11:08.450 回答