2015-08-15 57 views
-1

目前,我有以下结果:C# - 相同的按钮,但返回不同的价值

enter image description here

当我按“发送申请”按钮,第1组它存储2组到数据库中的值。它假设存储组1的值,例如组号和全名。我认为我的循环错误。任何人愿意帮助我?

的Page_Load

protected void Page_Load(object sender, EventArgs e) 
     { 
      Invite invite = new Invite(); 
      List<Invite> inviteList = new List<Invite>(); 
      InviteManager inviteManager = new InviteManager(); 
      SystemUser account = new SystemUser(); 
      SystemUserManager accountManager = new SystemUserManager(); 
      List<Project> projectList = new List<Project>(); 
      ProjectManager projectManager = new ProjectManager(); 
      Group group = new Group(); 
      Group groupX = new Group(); 
      List<Group> groupList = new List<Group>(); 
      List<Group> groupListX = new List<Group>(); 
      List<Group> groupListY = new List<Group>(); 
      GroupManager groupManager = new GroupManager(); 
      DataTable dt = new DataTable(); 

      SystemUser accountA = new SystemUser(); 
      SystemUser accountB = new SystemUser(); 
      bool status = false; 
      string emailAddress; 

      try 
      { 
       groupList = groupManager.getAvailableGroup(); 

       if (groupList.Count == 0) 
       { 
        divMessage.InnerHtml = "There is no available groups."; 
       } 
       else 
       { 
        for (int i = 0; i < groupList.Count; i++) 
        { 
         group = groupList[i]; 

         Label lblOne = new Label(); 
         lblOne.Text = "Group No.: " + group.groupNo + "</br>Group Leader: " + group.userName + "</br>Group Members:</br>"; 
         form1.Controls.Add(lblOne); 

         groupListX = groupManager.getGroupMember(group.groupNo); 

         GridView grdMember = new GridView(); 
         grdMember.AutoGenerateColumns = false; 

         BoundField btnFAdmissionNo = new BoundField(); 
         btnFAdmissionNo.HeaderText = "Admission No"; 
         btnFAdmissionNo.DataField = "userAdminNo"; 
         grdMember.Columns.Add(btnFAdmissionNo); 

         BoundField btnFFullName = new BoundField(); 
         btnFFullName.HeaderText = "Full Name"; 
         btnFFullName.DataField = "userName"; 
         grdMember.Columns.Add(btnFFullName); 

         grdMember.DataSource = groupListX; 
         grdMember.DataBind(); 
         form1.Controls.Add(grdMember); 

         Label lblTwo = new Label(); 
         lblTwo.Text = "Project selection:</br>"; 
         form1.Controls.Add(lblTwo); 

         groupListY = groupManager.getGroupChoice(group.groupNo); 

         GridView grdProjectSelection = new GridView(); 
         grdProjectSelection.AutoGenerateColumns = false; 

         BoundField btnFFirstChoice = new BoundField(); 
         btnFFirstChoice.HeaderText = "First Choice"; 
         btnFFirstChoice.DataField = "firstChoiceX"; 
         grdProjectSelection.Columns.Add(btnFFirstChoice); 

         BoundField btnFSecondChoice = new BoundField(); 
         btnFSecondChoice.HeaderText = "Second Choice"; 
         btnFSecondChoice.DataField = "secondChoicex"; 
         grdProjectSelection.Columns.Add(btnFSecondChoice); 

         BoundField btnFThirdChoice = new BoundField(); 
         btnFThirdChoice.HeaderText = "Third Choice"; 
         btnFThirdChoice.DataField = "thirdChoiceX"; 
         grdProjectSelection.Columns.Add(btnFThirdChoice); 

         BoundField btnFForthChoice = new BoundField(); 
         btnFForthChoice.HeaderText = "Forth Choice"; 
         btnFForthChoice.DataField = "forthChoiceX"; 
         grdProjectSelection.Columns.Add(btnFForthChoice); 

         grdProjectSelection.DataSource = groupListY; 
         grdProjectSelection.DataBind(); 
         form1.Controls.Add(grdProjectSelection); 

         Button btnSendRequest = new Button(); 
         btnSendRequest.Text = "Send Request"; 
         btnSendRequest.Click += delegate 
         { 
          emailAddress = HttpContext.Current.User.Identity.Name; 

          groupX = groupManager.getGroupLeader(group.groupNo); 
          accountB = accountManager.getAccInfoByAdminNo(groupX.userAdminNo); 

          invite.senderEmailAddress = emailAddress; 
          invite.groupNo = groupX.groupNo; 
          invite.userName = accountB.userName; 
          invite.userAdminNo = Convert.ToString(accountB.userAdminNo); 
          invite.recipientEmailAddress = accountB.recipientEmailAddress; 

          status = inviteManager.sendInvite(invite); 
         }; 
         form1.Controls.Add(btnSendRequest); 

         Label lblThree = new Label(); 
         lblThree.Text = "</br></br>"; 
         form1.Controls.Add(lblThree); 
        } 
       } 
      } 
      catch (Exception) 
      { 
       divMessage.InnerHtml = "Unable to retrieve data. Please contact administrator if the problem persists."; 
      } 
     } 

回答

1

在您的委托中,您正在使用在for循环之外声明的组变量。这就是为什么它始终包含groupList的最后一项。 所以不是

group = groupList[i]; 

Group group = groupList[i]; 
+0

太感谢你了!它完美的工作! – xenazfire

相关问题