Как получить идентификатор нажатой кнопки из метода, обрабатывающего это событие, в веб-часть SharePoint 2013? - PullRequest
0 голосов
/ 11 декабря 2018

Я довольно новичок в .NET и SharePoint (я работаю над SharePoint 2013), и у меня возникла следующая проблема при разработке веб-части .

В мою веб-часть у меня есть это ImageButton :

ImageButton btnApplica = new ImageButton();
btnApplica.ToolTip = "Documento in Entrata";
btnApplica.Click += btnApplica_Click_Scelta_Campi_Etichetta;
btnApplica.ID = "btnEntrata";
btnApplica.ImageUrl = "/_layouts/15/images/MyProject/Default/Ribbon/DocEntrataRibbon.png";

Как вы можете видеть, нажатие на эту кнопку выполняется btnApplica_Click_Scelta_Campi_Etichetta () метод этот:

void btnApplica_Click_Scelta_Campi_Etichetta(object sender, EventArgs e)
{
    Debug.Print("btnApplica_Click_Scelta_Campi_Etichetta START");

    SPWeb contextWeb = SPContext.Current.Web;
    string url = contextWeb.Url;

    string link = url + "/ARXEIA WEBPART/Carica documento.aspx?mode=scelta_campi_facoltativi_etichetta&obj=" + obj;

    SPUtility.Redirect(link, SPRedirectFlags.Default, Context);

}

Работает нормально.Моя проблема: изнутри этого btnApplica_Click_Scelta_Campi_Etichetta (отправитель объекта, EventArgs e) метода я могу получить нажатую кнопку? ID (в этом случае значение btnEntrata ) должно быть идеальным.

Я хочу использовать этот метод для обработки нажатия на разные кнопки вместо создания нового методадля каждой кнопки.

Могу ли я сделать что-то подобное?Как я могу получить идентификатор нажатой кнопки?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

«объект-отправитель» - это общий объект, представляющий объект, вызывающий метод, в данном случае ImageButton.Вы не можете напрямую получить доступ к переменным класса отправителя, потому что «объект» в значительной степени является заполнителем для любого объекта.Чтобы иметь доступ к переменным ваших объектов, вы можете привести их к ожидаемому объекту.

void btnApplica_Click_Scelta_Campi_Etichetta(object sender, EventArgs e)
{
    Debug.Print("btnApplica_Click_Scelta_Campi_Etichetta START");
    string id;
    if(sender.GetType() == typeof(ImageButton))
    {
       ImageButton button = (ImageButton)sender; // This is a cast
       id = button.ID;
    }
    SPWeb contextWeb = SPContext.Current.Web;
    string url = contextWeb.Url;

    string link = url + "/ARXEIA WEBPART/Carica documento.aspx?mode=scelta_campi_facoltativi_etichetta&obj=" + obj;

    SPUtility.Redirect(link, SPRedirectFlags.Default, Context);

}
0 голосов
/ 11 декабря 2018

Вы можете проанализировать переменную отправителя для кнопки и затем получить идентификатор, например:

void btnApplica_Click_Scelta_Campi_Etichetta(object sender, EventArgs e)
{
    Debug.Print("btnApplica_Click_Scelta_Campi_Etichetta START");
    ImageButton btnApplica = (ImageButton) sender;
    String idBtn = btnApplica.ID;

    SPWeb contextWeb = SPContext.Current.Web;
    string url = contextWeb.Url;

    string link = url + "/ARXEIA WEBPART/Carica documento.aspx?mode=scelta_campi_facoltativi_etichetta&obj=" + obj;

    SPUtility.Redirect(link, SPRedirectFlags.Default, Context);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...