У меня есть окно списка, которое заполняется с помощью диктофона. Когда я повторяю выбранные элементы с помощью следующего кода, он всегда отображает только первые элементы, выбранные - даже если первый элемент не выбран.ASP.NET lisbox - Выбран первый элемент, всегда
Вы когда-нибудь сталкивались с этим сценарием?
Не могли бы вы помочь в этом?
Эта проблема возникает, когда я использую словарь для привязки. С другой стороны, общий список работает отлично.
private void PopulateListBox2()
{
List<string> subjectList = new List<string>();
subjectList.Add("Maths");
subjectList.Add("Science");
ListBox1.DataSource = subjectList;
ListBox1.DataBind();
}
Даже он будет работать нормально, если значения являются уникальными. Но в моем сценарии значения одинаковы; меняется только ключ. Следующие работы
private void PopulateListBox5()
{
Dictionary<string, string> resultDictionary = new Dictionary<string, string>();
resultDictionary.Add("Maths", "Lijo1");
resultDictionary.Add("Science", "Lijo2");
ListBox1.DataValueField = "Value";
ListBox1.DataTextField = "Key";
ListBox1.DataSource = resultDictionary;
ListBox1.DataBind();
}
^^^^^^^^^^^^^^^^^^^ Следующий код имеет проблему.
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PopulateListBox1();
ListBox1.SelectionMode = ListSelectionMode.Multiple;
}
}
private void PopulateListBox1()
{
Dictionary<string, string> resultDictionary = new Dictionary<string, string>();
resultDictionary.Add("Maths", "Lijo");
resultDictionary.Add("Science", "Lijo");
ListBox1.DataValueField = "Value";
ListBox1.DataTextField = "Key";
ListBox1.DataSource = resultDictionary;
ListBox1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
MakeList1Items();
}
private void MakeList1Items()
{
string test = null;
foreach (ListItem item in ListBox1.Items)
{
if (item.Selected == true)
{
if(string.IsNullOrEmpty(test))
{
test=item.Text;
}
else
{
test = test +", " + item.Text;
}
}
}
Response.Write(test);
}
}
Благодаря
Lijo
Где этот код возникает в жизненном цикле страницы? – tvanfosson
Это событие относится к функции, вызываемой в обработчике событий нажатия кнопки. – Lijo
Так что это в обработчике кликов для кнопки? Возможно, вы захотите обновить свой вопрос с помощью большего количества окружающего кода. Здесь действительно не так много. Кроме того, не забудьте использовать кнопку «010 101» или отступить свой код на 4 пробела, чтобы получить правильное форматирование. – tvanfosson