ユーザーがダンスクラスを登録および追加/削除できるダンスアカデミーのWebサイトがあります。
特定のダンスをドロップするWebページで、特定のユーザーのドロップダウンに、登録されているダンスが表示されます。
次に、リストからダンスの1つを削除します。
したがって、テーブルとドロップダウンリストから行を削除します。問題は、ユーザーがどちらを選択しても、ID(インデックス)が最も小さいアイテムが削除されるたびに発生することです。
ドロップダウンのDataTextFieldとDataValueFieldを正しく保存していないと思います。誰かが私を助けてくれますか?コードは次のとおりです。
private void PopulateDanceDropDown()
{
var registereddanceList = from dd in context.DANCER_AND_DANCE
where dd.UserId == dancerId
select new
{
Text = dd.DanceName,
Value = dd.DanceId
};
dances.DataSource = registereddanceList;
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);
}
PopulateDanceDropDown();
}
<asp:DropDownList ID = "dances" runat="server">
</asp:DropDownList>
<asp:Button ID="dropDance" runat="server" OnClick="dropthedance" Text="Drop Class" BackColor="Maroon" ForeColor="#FFCC99"/>