Мне не хватает чего-то очень простого здесь ... Я прошел через мой отладчик, и все работает, но ListBox не заполняется новыми данными. Он отображается как пустой, когда я запускаю сайт.Заполнение ListBox из списка <string>
Я хочу:
Шаг 1. заселить Listbox с Filepath строк из моей базы данных. (Это нормально)
Шаг 2. Создайте новый список, используя элементы ListBox, удалив путь из каждой строки в процессе. (Кажется, все в порядке, count
увеличивается на list
, когда я отлаживаю)
Шаг 3. Переустановите ListBox, используя мой новый «список». (Не работает)
<div>
<asp:ListBox ID="ListBox1" runat="server" Width="100%" Height="100%" AutoPostBack="true"/>
</div>
Извлечение пути файлов из базы данных и заполнение DataTable: (Это нормально)
private DataTable loadUserImageNames()
{
string cpUsersConnection1 = ConfigurationManager.ConnectionStrings["cp_usersConnection"].ToString();
SqlConnection oSqlConnection1 = new SqlConnection(cpUsersConnection1);
oSqlConnection1.Open();
SqlCommand oSqlCommand1 = new SqlCommand();
oSqlCommand1.Connection = oSqlConnection1;
oSqlCommand1.CommandType = CommandType.Text;
oSqlCommand1.CommandText = "SELECT FilePath from User_Images where AcNo ='" + AcNo.Text + "' ORDER BY AcNo";
SqlDataAdapter oSqlDataAdapter1 = new SqlDataAdapter();
oSqlDataAdapter1.SelectCommand = oSqlCommand1;
DataTable oDataTable1 = new DataTable("User_Images");
oSqlDataAdapter1.Fill(oDataTable1);
return oDataTable1;
}
Присвоить DataTable в Listbox (Это нормально).
Вспомните каждый элемент из списка и удалите Путь, оставив только finalFileName
(Это нормально).
Присвоить finalFileName
к list
(я думаю, что это нормально, «счетчик» увеличивается при отладке)
Присвоить list
к ListBox1
.... это не работает, ListBox1 пуст.
if (!Page.IsPostBack)
{
DataTable oDataTable1 = loadUserImageNames();
ListBox1.DataSource = oDataTable1;
ListBox1.DataTextField = "FilePath";
ListBox1.DataBind();
List<string> list = new List<string>();
foreach (ListItem s in ListBox1.Items)
{
string filePath = (s.ToString());
string finalFileName = (filePath.Substring(filePath.LastIndexOf('/') + 1));
list.Add(finalFileName);
}
ListBox1.DataSource = list;
}
Вы пытались добавить ListBox1.DataBind(); после ListBox1.DataSource = list; ? Я думаю, что это должно было сделать трюк –
У меня есть, это подталкивает меня к выписке, но я не знаю почему. (Есть попытка/уловка не показана) – DMur
Какое исключение? также старайтесь поставить Список list = new Список (); перед тем, как ... –