Для привязки списка значений в виде таблицы на основе значения из СП продукт список
Я использовал привязку данных строк для получения элемента списка формы значения к элементам управления видом сетки.Для радио-списка это работает нормально, но для списка чекбоксов и выпадающего списка выбранное значение должно быть проверено на соответствующих элементах управления вида сетки.
Я отладил условия, все работает нормально, но я не могу найти выбранные значения в представлении сетки во время редактирования.
Представление сетки было реализовано в визуальной веб-части.
Пожалуйста, дайте мне знать, где проверить и что делать.
Что я уже пробовал:
Мой код:
protected void grid_RowDataBound(отправитель объекта, GridViewRowEventArgs e)
{
если (электронная.Подряд.RowType == DataControlRowType.Строкаданных &&усилителя; сети.EditIndex == е.Подряд.Параметр rowindex)
{
string id = сетка.DataKeys[электронный.Подряд.Параметр rowindex].Значение.Метод toString();
RadioButtonList rb = (RadioButtonList)e. Row.FindControl ("RadioButtonList1");
CheckBoxList chkdept = (CheckBoxList)e. Row.FindControl ("CheckBoxList1");
DropDownList ddl = (DropDownList)e. Row.FindControl ("DropDownList1");
Свойство spweb currentWeb = SPContext.Тока.Сеть;
SPList lst = currentWeb. Lists ["сотрудник"];
SPListItem item = null;
item = lst.GetItemById(Конвертировать.ToInt32 (id));
строка rd = item ["Gender"].Метод toString();
строка = элемент["опыт"].Метод toString();
строку заменить = ех.TrimStart(';', '#').TrimEnd (';','#');
строка qul = item ["квалификация"].Метод toString();
ЯОД.Предметы.FindByText (qul).Selected = true;
если (rd = = " мужчина")
{
РБ.пункты.FindByText(rd). Selected = true;
}
else if (rd = = " женщина")
{
РБ.пункты.FindByText(rd). Selected = true;
}
if (replace == "1-2year")
{
чкдепт.Предметы.FindByText (заменить).Selected = true;
}
еще если (заменить == "2-5лет")
{
чкдепт.Предметы.FindByText (заменить).Selected = true;
}
еще если (заменить == "5-10лет")
{
чкдепт.Предметы.FindByText (заменить).Selected = true;
}
}
}
Karthik_Mahalingam
это метания какие-либо ошибки?
проверьте регистр текста элемента и выделенного текста.
narengowtham
Он не выдает ошибку, для переключателя я могу установить значение, которое он работает нормально, а для списка чекбоксов он проверяет условия и не попадает в chkdept.Предметы.FindByText (заменить).Selected = true;
narengowtham
Я проверил с привязанными значениями и именем поля все в порядке.
Karthik_Mahalingam
присутствует ли элемент в списке флажков
narengowtham
&ЛТ;АСП:шаблон HeaderText="пол" ItemStyle-ширина="10" ItemStyle-обертывание="ложно"и GT;
& lt;ItemTemplate >
<%# Eval ("пол") %>
< edititemtemplate>
&ЛТ;как ASP:radiobuttonlist с ИД="RadioButtonList1" атрибут runat="сервер" RepeatDirection="горизонтальный" и GT;
< asp:Listitem Value= " 1 " & gt;Male
< asp:Listitem Value="2" & gt;Female
<asp:TemplateField HeaderText= "опыт" >
& lt;itemtemplate>
<%# Eval ("опыт") % & gt;
< edititemtemplate>
&ЛТ;как ASP:CheckBoxList с ИД="CheckBoxList1" атрибут runat="сервер"и GT;
< asp:Listitem Value= " 0 "Text=" 1-2year">
< asp:Listitem Value=" 1 "Text=" 2-5year">
< asp:Listitem Value=" 2 "Text=" 5-10year">
Моя доля смысла lsitem имя столбца опыт выбора поля
То же самое, что
1-2 года
2-5лет
5-10 лет.
Но при просмотре сетки значение флажка отображается с помощью;,#
особый характер.
2-5лет
Karthik_Mahalingam
удалите специальные символы из кода и попробуйте.
narengowtham
Позвольте мне проверить его.
Karthik_Mahalingam
в противном случае вы добавляете специальный символ для выбранного элемента, в любом случае он должен работать.
narengowtham
Никаких изменений в представлении сетки для столбца контрольного списка не произошло.
Это может быть только список переключателей при нажатии на кнопку Изменить.
narengowtham
на моем коде до сих пор
если (rd = = " мужчина")
{
РБ.пункты.FindByText(rd). Selected = true;
}
else if (rd = = " женщина")
{
РБ.пункты.FindByText(rd). Selected = true;
}
это хорошо, но для регистрации списка раскрывающегося списка и я не собираюсь выбранных значений.
narengowtham
В частности я могу поделиться снимками экрана если вы не возражаете по электронной почте