narengowtham Ответов: 1

Для привязки списка значений в виде таблицы на основе значения из СП продукт список


Я использовал привязку данных строк для получения элемента списка формы значения к элементам управления видом сетки.Для радио-списка это работает нормально, но для списка чекбоксов и выпадающего списка выбранное значение должно быть проверено на соответствующих элементах управления вида сетки.
Я отладил условия, все работает нормально, но я не могу найти выбранные значения в представлении сетки во время редактирования.
Представление сетки было реализовано в визуальной веб-части.

Пожалуйста, дайте мне знать, где проверить и что делать.

Что я уже пробовал:

Мой код:
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

В частности я могу поделиться снимками экрана если вы не возражаете по электронной почте

1 Ответов

Рейтинг:
0

narengowtham

Я попробовал немного отладить его, а потом нашел решение.


if (replace == "1-2year")
{
/*chkdept.Предметы.FindByText (заменить).Selected = true;*/
вместо вышеприведенного кода просто замените его на этот
чкдепт.Пункты[0].Selected = true;

}
еще если (заменить == "2-5лет")
{

чкдепт.Пункты[1].Selected = true;

}
еще если (заменить == "5-10лет")
{


чкдепт.Пункты [2].Selected = true;
}

строка = элемент["опыт"].Метод toString();

Также при получении элемента списка в строковом объекте из поля выбора установите флажок List Share Point.По умолчанию он поставляется с пробелом типа: "2-5 лет" вместо "2-5 лет".Так что я прошел со строкой, где пробел работал отлично.