我在(Asp.Net3.5)页面上显示了一个 DataList,用户可以从中进行选择。然后将所选行的 datakey 值存储在数据库中。
如果同一用户在未来某个时间点重新访问该页面,则从数据库中检索选定的数据键值。我想使用这个 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 中设置它,则 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;
}
}