繁体   English   中英

如何获取对象发件人?

[英]How to get object sender?

单击按钮时,我正在尝试发送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();
        }

我的问题是

如何获取DButton的事件sender以发送到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_ClicknewButton_Click

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

我仍在努力解决您的问题。 但是我确实让您的活动上班了。 请告诉我是否有帮助,我会继续提供帮助。 在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();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM