簡體   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