2017-07-06 59 views
0

我试图在点击按钮时发送object sender如何获取对象发件人?

以前我的事件点击不火,但现在它正在我的代码这样的:

public partial class Dashboard : System.Web.UI.Page 
    { 
     static bool enable = false; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       DynamicButton(); 
      } 
      else if(enable) 
      { 
       DynamicButton(); 
      }  
     } 

这是改变DynamicButton并开始一切事件:

protected void DButton(object sender, EventArgs e) 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "showAndHide();", true); 

      enable = true; 
      DynamicButton(); 
     } 

这里的地方我开始创建动态按钮:

protected void DynamicButton() 
     { 
      List.ListUsers listArea = new List.ListUsers(); 
      List<Data.Area> Area = listArea.AreaList(); 

      List<Data.Area> ListOfEquiposOk = Area.Where(x => x.AREA == "ENG" && x.STANDBY == 0).ToList(); 

      var TeamFCH = ListOfEquiposOk.Select(x => x.TEAM).Distinct().ToList(); 

      foreach (var team in TeamFCH) 
      { 
       LinkButton newButton = new LinkButton(); 
       newButton.CommandName = "Btn" + Convert.ToString(team); 
       newButton.ID = "Btn_" + Convert.ToString(team); 
       newButton.Text = team; 
       newButton.CommandArgument = "ENG"; 

       newButton.Click += new EventHandler(newButton_Click); 

       pan1.Controls.Add(newButton); 

       newButton.CssClass = "btn-primary outline separate"; 

      } 
     } 

这里的地方创建按钮,开始他的事件

protected void newButton_Click(object sender, EventArgs e) 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "ModalGood();", true); 
      List.ListUsers listArea = new List.ListUsers(); 
      List<Data.Area> Area = listArea.AreaList(); 

      List<Data.Area> ListOfToolsOk = Area.Where(x => x.AREA == "ENG" && x.TEAM == "516" && x.STANDBY == 0).ToList(); 

      var ToolArea = ListOfToolsOk.Select(x => x.TEAM); 
      Grv_Eng.DataSource = ListOfToolsOk; 
      Grv_Eng.DataBind(); 
     } 

我的问题是

我怎样才能得到事件的DButtonsender发送到DynamicButton改变这些?

我的意思是:

Button Btn_clic = (Button)sender; 
var name = Btn_clic.Text; 

我需要的DButton事件发送方改变这种

List<Data.Area> ListOfEquiposOk = Area.Where(x => x.AREA == CHANGE THIS -> "ENG" && x.STANDBY == 0).ToList();

newButton.CommandArgument = CHANGE THIS -> "ENG";

这些都是从DynamicButton

如何获取创建的动态按钮的事件sender以及如何从DButton将事件发送到NewButton_Click

我的意思是太

Button Btnclick = (Button)sender; 
var team = Btnclick.Text; 
string name = Btnclick.CommandArgument; 

,并改变这一个是从newButton_Click

List<Data.Area> ListOfToolsOk = Area.Where(x => x.AREA == CHANGE THIS -> "ENG" && x.TEAM == CHANGE THIS -> "516" && x.STANDBY == 0).ToList();

回答

1

我仍然对你的问题的工作。但我确实让你的活动工作。请让我知道这是否有帮助,我会继续提供帮助。在newButton_Click的开始部分放置一个断点,看看它现在在这里突破。至今信用到互联网上。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace List 
{ 
    public class ListUsers 
    { 
     public List<Data.Area> AreaList() 
     { 
      var list = new List<Data.Area>(); 
      Data.Area area1 = new Data.Area { AREA = "ENG", STANDBY = 0, TEAM = "team1" }; 
      Data.Area area2 = new Data.Area { AREA = "ENG", STANDBY = 0, TEAM = "team2" }; 
      Data.Area area3 = new Data.Area { AREA = "area3", STANDBY = 3, TEAM = "team3" }; 
      list.Add(area1); 
      list.Add(area2); 
      list.Add(area3); 
      return list; 
     } 
    } 
} 

namespace Data 
{ 
    public class Area 
    { 
     public string AREA { get; set; } 
     public int STANDBY { get; set; } 
     public string TEAM { get; set; } 
    } 
} 

namespace WebApplication1 
{ 
    public partial class Dashboard : System.Web.UI.Page 
    { 
     //BTW static variable are shared across multiple users of your web site 
     static bool enable = false; 

     override protected void OnInit(EventArgs e) 
     { 
      //NEED TO set event listener in oninit everytime 
      DynamicButton(); 
     } 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       //DynamicButton(); 

      } 
      else if (enable) 
      { 
       //DynamicButton(); 
      } 
     } 

     protected void DynamicButton() 
     { 
      List.ListUsers listArea = new List.ListUsers(); 
      List<Data.Area> Area = listArea.AreaList(); 

      List<Data.Area> ListOfEquiposOk = Area.Where(x => x.AREA == "ENG" && x.STANDBY == 0).ToList(); 

      var TeamFCH = ListOfEquiposOk.Select(x => x.TEAM).Distinct().ToList(); 

      foreach (var team in TeamFCH) 
      { 
       LinkButton newButton = new LinkButton(); 
       newButton.CommandName = "Btn" + Convert.ToString(team); 
       newButton.ID = "Btn_" + Convert.ToString(team); 
       newButton.Text = team; 
       newButton.CommandArgument = "ENG"; 

       newButton.Click += new EventHandler(newButton_Click); 

       pan1.Controls.Add(newButton); 

       newButton.CssClass = "btn-primary outline separate"; 
      } 
     } 

     public void newButton_Click(object sender, EventArgs e) 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "ModalGood();", true); 
      List.ListUsers listArea = new List.ListUsers(); 
      List<Data.Area> Area = listArea.AreaList(); 

      List<Data.Area> ListOfToolsOk = Area.Where(x => x.AREA == "ENG" && x.TEAM == "516" && x.STANDBY == 0).ToList(); 

      var ToolArea = ListOfToolsOk.Select(x => x.TEAM); 
      Grv_Eng.DataSource = ListOfToolsOk; 
      Grv_Eng.DataBind(); 
     } 

     protected void DButton(object sender, EventArgs e) 
     { 
      ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "showAndHide();", true); 

      enable = true; 
      DynamicButton(); 
     } 
    } 
} 
+0

嘿,这工作正常! –