Хорошо, после просмотра кода кажется, что вы хотите получить идентификатор кнопки, чтобы вы могли обработать некоторый код на основе этого. Что ж, позвольте мне кое-что прояснить: событие Page Load никогда не даст вам элемент управления, который вызвал обратную передачу в объекте отправителя, даже если он срабатывает при нажатии кнопки и отправляет сообщение обратно, но в нем НЕ будет содержаться информация в объекте отправителя для элемента управления. который отправил его обратно.
Для этого вы можете использовать этот подход из ответа Джеймса Джонсона , чтобы узнать, какой элемент управления вызвал обратную передачу:
/// <summary>
/// Retrieves the control that caused the postback.
/// </summary>
/// <param name="page"></param>
/// <returns></returns>
private Control GetControlThatCausedPostBack(Page page)
{
//initialize a control and set it to null
Control ctrl = null;
//get the event target name and find the control
string ctrlName = page.Request.Params.Get("__EVENTTARGET");
if (!String.IsNullOrEmpty(ctrlName))
ctrl = page.FindControl(ctrlName);
//return the control to the calling method
return ctrl;
}
This вернет объект Control
, в который вы можете в дальнейшем углубиться.
В противном случае подходящим и аккуратным подходом в вашем случае будет сделать это так:
public partial class ADD_MOBILE : System.Web.UI.Page
{
string BUTN_ID; // I do not think it is necessary here.
protected void Page_Load(object sender, EventArgs e)
{
}
protected void saveMOBILE_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
if(button is null) return; // you can use == instead of keyword 'is'
if(button.ID.Equals("samsung"))
{
// DoStuff();
}
}
}
Я надеюсь Вы находите это полезным.