Эквивалент CType в C # для преобразования Dropdownlist, который находится в EditItemTemplate Gridview - PullRequest
1 голос
/ 16 января 2009

Я использую Gridview для отображения некоторых данных. В EditItemTemplate gridview я использую DropDownList для одного из столбцов gridview. Источником данных gridview является таблица «UserEntries». А Datasource of Dropdown - это еще одна таблица «TypeEntries». Столбцы TypeEntries - Guid и TypeName. Guid - это DataValueField раскрывающегося списка, а TypeName - DataTextField. Я храню DataValueFiels раскрывающегося списка в таблице UserEntries.

Теперь, когда пользователь нажимает кнопку «Изменить» в виде сетки, как заполнить раскрывающийся список таблицей «TypeEntries»? Я использую

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

но это не работает. Может кто-нибудь сказать мне любой другой способ сделать эту задачу? Заранее спасибо.

Ответы [ 5 ]

1 голос
/ 16 января 2009

Если вы получаете «Ссылка на объект не установлена ​​на экземпляр объекта». в исключении, это означает, что элемент управления "ddlTypeListInGrid" не найден. Так что вы не можете разыграть NULL (НИЧЕГО) для целевого типа.

Вы, вероятно, делаете этот код в жизненном цикле wrogn страницы. Попробуйте это в одном из последующих событий oage (Load, LoadComplete и т. Д.) Или проверьте, действительно ли контейнер содержит элемент управления с идентификатором "ddlTypeListInGrid".

0 голосов
/ 16 января 2009

В качестве дополнительного примечания (не связанного с вашей проблемой, просто для вашей информации) следующая строка:

 DropDownList tempddl = new DropDownList();       

Может быть:

 DropDownList tempddl;

Вам не нужно создавать новый экземпляр DropDownList, поскольку на следующей строке вы пытаетесь найти экземпляр с именем ddlTypeListInGrid. Затем, как сказал Ткс, если элемент управления ddlTypeListInGrid не существует, вы, скорее всего, получите исключение NullReferenceException.

0 голосов
/ 16 января 2009

Вы ищете Convert.ChangeType, мне нужно увидеть больше кода, чтобы решить вашу проблему.

0 голосов
/ 16 января 2009

Я загружаю весь код функции.

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();        

}
0 голосов
/ 16 января 2009

C # чувствителен к регистру, вместо него следует использовать DropDownList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...