0

ユーザーがダンスクラスを登録および追加/削除できるダンスアカデミーの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"/>
4

1 に答える 1

0

あなたの質問が言うように、Linq に保存せずにレコードにアクセスしたいと考えています。

したがって、以下のものがあなたの代わりになる可能性があります。

まず、データベースからすべてのデータを保存します。List<NameIDPair>

NameIDPairが考えられるかは次のとおりです。

class NameIDPair 
{
public NameIDPair(){}
public string NameValue{get;set;}
public string IDValue{get;set;}
} 

次に、ドロップダウン リストに次のように入力します。

List<NameIDPair> storeInMe = From Database
foreach(NameIDPair pair in storeInMe )
{
ListItem item = new ListItem();
item.Value = pair.IDValue;
item.Text = pair.NameValue;
ddldancesList.Items.Add(item);
}

次に、dropTheDance の場合、delete ストアド プロシージャを呼び出して同じものを削除できます...

お役に立てれば...

于 2012-04-07T07:27:16.320 に答える