2012-04-06 48 views
0

我有一个可供用户注册和添加/删除舞蹈班的舞蹈学院网站。在不使用LINQ的情况下将记录存储在数据库的下拉列表中数据源

在网页上放弃特定的舞蹈,对于特定用户,下拉菜单显示她注册的舞蹈。

现在我想从列表中删除一个舞蹈。

因此,我将从表格中删除该行,并从下拉列表中删除该行。问题是,每当具有最低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"/> 
+0

在两段代码中'context'是否是同一个实例?在你的标题中没有使用LINQ Data source_是什么意思?这是一个需求吗,它是在哪里失败?你的代码看起来应该没问题。 – 2012-04-09 08:34:29

回答

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); 
} 

那么对于可以调用删除存储过程来删除相同的...

希望这会有所帮助......

相关问题