簡単な検索を行った後、この一見単純なことに対する答えが見つかりません。
Asp.Net ListView で項目を手動で選択するにはどうすればよいですか?
SelectedItemTemplate がありますが、asp:button または asp:LinkButton を使用して項目を選択したくありません。URLからやりたい。たとえば、QueryString のように。
私が想像する方法は、ItemDataBound で条件を確認し、true の場合は選択済みに設定することですが、どうすればよいですか?
例えば:
protected void lv_ItemDataBound(object sender, ListViewItemEventArgs e) {
using (ListViewDataItem dataItem = (ListViewDataItem)e.Item) {
if (dataItem != null) {
if( /* item select condition */ ) {
// What do I do here to Set this Item to be Selected?
// edit: Here's the solution I'm using :
((ListView)sender).SelectedIndex = dataItem.DisplayIndex;
// Note, I get here and it gets set
// but the SelectedItemTemplate isn't applied!!!
}
}
}
}
1行か2行のコードだと思います。
編集:解決策を反映するようにコードを更新しました。ListView の SelectedItemIndex を選択できるようですが、実際には SelectedItemTemplate をレンダリングしていません。以下に示すように、ItemDataBound イベントでこれを行うべきかどうかはわかりません。