Я пытаюсь добиться множественного выбора функций в asp.net, как в формах Windows. Требуется предоставить в интерфейсе, где все возможные элементы отображаются с одной стороны, пользователь выбирает элемент и нажимает кнопку с текстом «>», чтобы перемещать элементы в панели выбранных элементов. Аналогично при нажатии кнопки с текстом ">>" все элементы должны перемещаться на панель выбранных элементов и наоборот для кнопок с текстом "‹" и "‹‹". Кроме того, когда пользователь нажимает кнопку «Сохранить», элементы на панели выбранных элементов сохраняются в базе данных, в то время как при редактировании элементы записи должны быть помещены в конкретную панель, то есть на панель выбранных и невыбранных элементов. Надеюсь, вы поняли мою точку зрения, я пытаюсь реализовать эту функциональность в веб-формах с .NET 3.5, но не знаю, с чего начать и что делать с Google. Спасибо за любое руководство.
Формы Windows Listbox и множественный выбор в виде дерева чередуются в веб-форме asp.net
comment
Где твой код? любая попытка?
- person Saman Gholami   schedule 05.08.2014
comment
Как я уже упоминал в своем посте, не знаю, как начать или что искать в Google, я искал, используя ключевые слова, такие как окно списка форм Windows, альтернативное в ASP.NET для множественного выбора и т. д., нашел некоторые ссылки, такие как dotnetcurry.com/showarticle.aspx?ID=209, но они связаны с формой окна. Я думаю, что события и элементы управления, используемые в коде, недоступны в веб-формах.
- person Ahmad Ahsan   schedule 05.08.2014
Ответы (2)
Если я правильно понял ваш вопрос, вы хотите что-то вроде этого:
Для реализации этого, прежде всего, у меня есть 2 ListBox
на моей странице, lstSource
и lstDest
. После этого я добавляю ListItem
к свойству Items
элемента lstSource
. Затем я реализую кнопки с кодом программной части следующим образом:
protected void btnSelectOne_Click(object sender, EventArgs e)
{
lstDest.Items.Add(lstSource.SelectedItem);
}
protected void btnSelectAll_Click(object sender, EventArgs e)
{
foreach (ListItem item in lstSource.Items)
{
lstDest.Items.Add(item);
}
}
Надеюсь, это поможет. Но имейте в виду, что это элементы управления на стороне сервера, и они не являются хорошим выбором для этой цели, вместо них следует использовать подключаемые модули javascript
или jquery
.
person
Saman Gholami
schedule
05.08.2014
Спасибо, Саман, ты очень хорошо понял мою точку зрения. Но как я могу добиться складной функциональности, используя этот подход со списком? Например, я связал данные левого списка из базы данных как страны с их состояниями в свернутом состоянии, т.е. когда страна выбрана, города раскрываются ниже названия страны. Пользователь выбирает город и нажимает кнопку ›, после чего название города вместе с названием страны (в сворачиваемом виде) перемещается на правую панель.
- person Ahmad Ahsan; 05.08.2014
Для этого подхода следует использовать элемент управления TreeView ASP.NET.
- person Saman Gholami; 05.08.2014
В событии нажатия кнопки вы можете сделать что-то вроде этого:
protected void Button1_Click(object sender, EventArgs e)
{
if (ListBox1.Items.Count > 0)
{
foreach (ListItem item in ListBox1.Items)
{
if (item.Selected == true)
{
//insert your code that adds the selected item to the panel you have
}
}
}
}
Есть несколько вещей, с которыми вы должны справиться в первую очередь. Измените режим выбора на множественный и обработайте обратную передачу (если вы этого не сделали).
person
Apostrofix
schedule
05.08.2014