首页 > 解决方案 > 我无法在 ASP.NET 后面的代码中读取按下按钮的 css ID

问题描述

我无法在后面的代码中读取按下按钮的 css ID。

这是我为字符串 btnCliked = ((Button)sender).ID 创建的方法;ID 为空,我不知道为什么。

    protected void open_contract_click(object sender, EventArgs e)
    {         
        string btnCliked = ((Button)sender).ID;
        foreach (contractStepColumn i_contractColumn in kanban.kanbanBoard)
        {

            foreach (contractTask contract_task in i_contractColumn.contractTasks)
            {
                if (btnCliked == "btnContractPopup" + i_contractColumn.stepColumnName + i_contractColumn.contractTasks.IndexOf(contract_task))
                {
                    KanbanUI.selectedContractID = contract_task.contract_id;
                    Redirect();
                }
            }

        }

    }

}

这是我的按钮是如何在后面的代码中创建的。

            Button btnMoreDetails = new Button();
            btnMoreDetails.Attributes.Add("class", "btnPopup");
            btnMoreDetails.Attributes.Add("ID", "btnContractPopup" + i_contractColumn.stepColumnName + i_contractColumn.contractTasks.IndexOf(contract_task));
            btnMoreDetails.Text = "Más Detalles";
            btnMoreDetails.Attributes.Add("runat", "server");
            btnMoreDetails.Click += new EventHandler(this.open_contract_click);
            expandPopup.Controls.Add(btnMoreDetails);

任何帮助都会非常受欢迎。

标签: c#cssasp.net

解决方案


它不起作用的原因是因为这条线

  btnMoreDetails.Attributes.Add("ID", "btnContractPopup" + i_contractColumn.stepColumnName + i_contractColumn.contractTasks.IndexOf(contract_task));

由于某种原因,asp.net 无法读取 id,所以我将其更改为

 btnMoreDetails.ID ="btnContractPopup" + i_contractColumn.stepColumnName + i_contractColumn.contractTasks.IndexOf(contract_task);

尽管在这两种情况下,css 对我来说似乎完全一样。


推荐阅读