protected void pnlFriends_Click(object sender, EventArgs e)
{
ClickablePanel pnlFriends = sender as ClickablePanel;
lvFriends.SelectedIndex = ((ListViewItem)pnlFriends.Parent).DisplayIndex;
}
Не попадает следующее:
protected void lvFriends_SelectedIndexChanging(object sender,
ListViewSelectEventArgs e)
{
GetConversation(lvFriends.DataKeys[e.NewSelectedIndex][0].ToString());
}
Как получилось?Я привык работать с WinForms, используя .Selected = true;Однако, похоже, что нет абсолютно никакого способа динамически запустить событие ListViewSelectedIndexChanging.
Есть идеи, как мне заставить это работать должным образом?Спасибо.
РЕДАКТИРОВАТЬ
Я пытаюсь выбрать элемент ListView и при изменении индекса.Я пытаюсь заполнить второй ListView на той же странице.Мне нужно обработать первое событие при изменении индекса.
ОБНОВЛЕНИЕ (РАЗРЕШЕНО)
protected void lvFriends_SelectedIndexChanging(object sender, ListViewSelectEventArgs e)
{
lvFriends.SelectedIndex = e.NewSelectedIndex;
lvFriends.DataSource = Friendship.GetFriends(User.Identity.Name, false);
lvFriends.DataBind();
GetConversation(lvFriends.DataKeys[e.NewSelectedIndex][0].ToString());
}
protected void pnlFriends_Click(object sender, EventArgs e)
{
ClickablePanel pnlFriends = sender as ClickablePanel;
lvFriends.SelectItem(((ListViewItem)pnlFriends.Parent).DisplayIndex);
}
^ Работает безупречно.Я думаю, как-то. SelectItem
вызывает ListViewSelectEventArgs
, и мы должны обработать его, установив .SelectedIndex = e.NewSelectedIndex;
, а затем повторно связать данные для правильного отображения выбранного элемента.
Теперь, что я могу сделать с кодомвыше просто позвони -> lvFriends.SelectItem(int);