2012-06-19 3 views
0

У меня есть сетка в asp.net, который заполняется из таблицы (на самом деле присоединиться),Asp.Net: изменение значения в колонке GridView

Существует column имени EMPLOYEENAME (который показывает название работников) и еще один столбец с именем EmployeeID (с указанием идентификатора сотрудников),

Эти две колонны связаны т.е. работник «Том» будет всегда идентификатор сотрудника сказать «21»

в настоящее время я редактирование имя сотрудника колонки с помощью выпадающего списка,

Мне нужен код, чтобы автоматически изменить идентификатор сотрудника, соответствующий имени сотрудника, который редактируется

т.е. если я выбрал имя сотрудника на «TOM» соответствующие сотрудник автоматически переходит на «21»

+1

Как насчет колонки с идентификатором? Это также DropDownList? Поделитесь некоторым кодом, чтобы мы знали сценарий. –

+0

no ID column - это тип типа только для чтения. – Snedden27

+2

Итак, вы можете работать с выбранным событием с измененным индексом с выпадающим списком и соответствующим образом заполнить элемент только для чтения. –

ответ

0

Просмотрите эту ссылку в MSDN @Gridview sample code.

Просмотрите/изучите событие Gridview SelectedIndexChanged в C# и свойства GridView в файле XML/html.

1

Поскольку вы меняете имя сотрудника, используя раскрывающийся список. Таким образом, вы можете сделать это, установив autopostback = true для этого выпадающего списка и сделайте событие onSelectedIndexChanged.

На кода кода страницы записи для извлечения сотрудника идентификатор выбранного индекса выпадающего и обновить его в сетке

На ASPX странице:

AutoPastBack="true" OnSelectedIndexChanged="grid_selectedIndexchanged" 

На код позади страницы:

protected void grid_selectedIndexchanged(object sender, EventArgs e) 

{ /* Код для извлечения данных из базы данных для выбранного сотрудника */

}

+0

Я делаю это, но я, похоже, не получаю идентификатор раскрывающегося списка, так как он находится внутри сетки, поэтому как я могу получить значение, которое было выделено в раскрывающемся списке после его изменения? – Snedden27

+0

На выпадающем меню selectedindex change используйте следующий код для этой части: [ DropDownList ddl = (DropDownList) отправитель; GridViewRow gvr = (GridViewRow) ddl.NamingContainer; int rowIndex = gvr.RowIndex; ] , и вы получите индекс gridviewrow, в котором вы хотите изменить employeeid –

0

Вы можете установить EMPLOYEEID как значение ListItem. Таким образом, когда вы выбираете Item, у вас есть имя сотрудника и employeeid выбранного элемента.

Может быть достигнуто за счет привязки данных, как это:

ddlEmpNames.DataSource = employees; 
ddlEmpNames.DataTextField = "EMPLOYEENAME"; 
ddlEmpNames.DataValueField = "EMPLOYEEID"; 
ddlEmpNames.DataBind(); 

Это, вероятно, сэкономит вам еще один вызов базы данных слишком просто, чтобы найти идентификатор сотрудника от имени.

Смежные вопросы