ユーザーが選択できる(Asp.Net3.5)ページにDataListを表示しています。次に、選択した行のデータキー値がデータベースに格納されます。
将来のある時点で同じユーザーがページに再度アクセスする必要がある場合は、選択されたデータキーの値が DB から取得されます。この datakey 値を使用して、DataList 内の対応する行を強調表示したいと思います。
この DataKey 値から DataList の適切な SelectedIndex を設定するにはどうすればよいですか?
私は次のことを試しました。
protected void dlCampChars_DataBinding(object sender, EventArgs e)
{
for (int i = 0; i < dlCampChars.Items.Count; i++)
{
// Ignore values that cannot be cast as integer.
try
{
if (dlCampChars.DataKeys[i].ToString() == lSelection.ToString())
{
Label28.Text = i + "";
dlCampChars.SelectedIndex = i + 1;
}
}
catch { }
}
}
ItemDataBinding に設定すると、DL がバインドされた後に SelectedIndex の更新が行われ、効果がありません。何か案は??
ありがとう
更新されたコード
// if stored DataKey exists loop through DataTable
// looking for the index of the item matching the DataKey
int itemIndex = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
// check the appropriate "DataKey" column name of the current row
if (dt.Rows[i]["cha_Key"].ToString() == lSelection)
{
// match found, set index and break out of loop
itemIndex = i;
break;
}
}