У меня есть DataList, отображаемый на странице (Asp.Net3.5), которую пользователь может выбрать. Затем значение ключа данных выбранной строки сохраняется в базе данных.
Если страница должна быть повторно посещена одним и тем же пользователем в какой-то момент в будущем, выбранное значение ключа данных извлекается из БД. Я хотел бы использовать это значение ключа данных, чтобы выделить соответствующую строку в DataList.
Как я могу установить соответствующий SelectedIndex DataList из этого значения DataKey?
Я пробовал следующее;
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, обновление SelectedIndex выполняется после привязки DL и не имеет никакого эффекта. Есть идеи??
Спасибо
ОБНОВЛЕННЫЙ КОД
// 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;
}
}