我有一個跳舞學院的網站,用戶可以在其中註冊和添加/刪除舞蹈班。使用linq查詢將值存儲在下拉列表的DataValueField和DataTextField中
在網頁上放棄特定的舞蹈,對於特定用戶,下拉菜單顯示她註冊的舞蹈。
現在我想從列表中刪除一個舞蹈。所以我會從表格中刪除該行,並從下拉列表中刪除。問題在於每次具有最低ID(索引)的項目都被刪除,無論用戶選擇哪一個。我認爲我錯誤地爲下拉式存儲了DataTextField和DataValueField。該代碼是:
private void PopulateDanceDropDown()
{
// Retrieve the username
MembershipUser currentUser = Membership.GetUser();
var username = currentUser.UserName;
// Retrive the userid of the curren user
var dancerIdFromDB = from d in context.DANCER
where d.UserName == username
select d.UserId;
Guid dancerId = new Guid();
var first = dancerIdFromDB.FirstOrDefault();
if (first != null)
{
dancerId = first;
}
dances.DataSource = (from dd in context.DANCER_AND_DANCE
where dd.UserId == dancerId
select new
{
Text = dd.DanceName,
Value = dd.DanceId
}).ToList();
dances.DataTextField = "Text";
dances.DataValueField = "Value";
dances.DataBind();
}
protected void dropthedance(object o, EventArgs e)
{
String strDataValueField = dances.SelectedItem.Value;
int danceIDFromDropDown = Convert.ToInt32(strDataValueField);
var dancer_dance = from dd in context.DANCER_AND_DANCE
where dd.DanceId == danceIDFromDropDown
select dd;
foreach (var dndd in dancer_dance)
{
context.DANCER_AND_DANCE.DeleteOnSubmit(dndd);
}
try
{
context.SubmitChanges();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
的問題是在該行:
String strDataValueField = dances.SelectedItem.Value;
的strDataValueField總是正從下拉舞蹈項目ID列表(默認情況下發生)的最低ID。我想要這個保存用戶選擇的舞蹈的ID。
嘿感謝,它確實工作!我沒有與if(!IsPostback)綁定。另外我沒有設置enabledviewstate = true。再次感謝:) – user1318369 2012-04-07 22:44:13