У меня есть DataList, отображаемый на странице (Asp.Net3.5), из которой пользователь может выбирать. Затем значение datakey выбранной строки сохраняется в базе данных.
Если страница будет повторно посещаться тем же пользователем в какой-то момент в будущем, то выбранное значение ключа данных будет получено из БД. Я хотел бы использовать это значение datakey, чтобы выделить соответствующую строку в 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;
}
}