C# Извлечь событие из HTML-кода, установленного в заполнителе элемента управления

Я делаю C# 3-уровневый проект о домашних животных

При загрузке первой веб-формы я делаю запрос к базе данных и получаю данные всех домашних животных (идентификатор, имя, фото) в виде списка, который будет отображаться в виде карточек с изображениями в HTML, я, кстати, использую Materialize, я оставить эту ссылку в качестве примера http://materializecss.com/cards.html

Мой код (Pets.aspx.cs) это

protected void Page_Load(object sender, EventArgs e)
    { 
        if(!IsPostBack)
        {
            NegPet negPet = new NegPet();
            StringBuilder sbHtml = new StringBuilder();

            List<EntPet> listEntPet = negPet.getAllPet(5); //5 is the user code (get all pets from user 5)

            if (listEntPet.Count > 0)
            {
                foreach (EntPet entPet in listEntPet)
                {
                    sbHtml.Append("<div class=\"col s6 m4\">");
                    sbHtml.Append("<div class=\"card\">");
                    sbHtml.Append("<div class=\"card-image\">");
                    sbHtml.Append("<img src=\"http://www.dogzone.com/images/breeds/beagle.jpg\" alt=\"\" class=\"circle responsive-img\" />");
                    sbHtml.Append("<asp:LinkButton id=\"lb_"+ entPet.Id_pet + "\" runat=\"server\" CommandArgument='<%# Eval(\""+ entPet.Id_pet + "\") %>')");
                    sbHtml.Append("\" click=\"updatePet_Click\" class=\"btn-floating halfway-fab waves-effect waves-light red\"><i class=\"material-icons\">edit</i></a>");
                    sbHtml.Append("</div>");
                    sbHtml.Append("<div class=\"card-content\">");
                    sbHtml.Append("<span class=\"card-title\">");
                    sbHtml.Append(entPet.Name_pet);
                    sbHtml.Append("</span>");
                    sbHtml.Append("</div>");
                    sbHtml.Append("</div>");
                    sbHtml.Append("</div>");

                }
            } else
            {
                sbHtml.Append("<h2>No pets found</h2>");
            }

            galPet.Controls.Add(new Literal { Text = sbHtml.ToString() });
        }       
    }

Где галпет это

<asp:PlaceHolder ID="galPet" runat="server" />

Этот код возвращает мне все "Id" и "Name" "Pets" и устанавливает его в желаемом HTML-дизайне, аналогично галерее. Проблема возникает, когда я пытаюсь попасть на мероприятие onClick="updatePet_Click" по-видимому, он никогда не достигает своего метода позади

public void updatePet_Click(Object sender, EventArgs e)
    {
        LinkButton btn = (LinkButton)(sender);
        string yourValue = btn.CommandArgument.Substring(3);

        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + yourValue + "');", true);
    }

То, что я пытаюсь сделать с этим кодом, это получить идентификатор из нажатой asp:LinkButton, чтобы я мог использовать его в коде позади

Я также попытался изменить событие на "OnClick", но я получил эту ошибку, когда попытался щелкнуть его

Pets.aspx:24 Uncaught ReferenceError: updatePet_Click is not defined
at HTMLUnknownElement.onclick (Pet.aspx:24)

Я хотел бы знать, как получить идентификатор для работы с ним в коде, или есть ли другой способ передать мой список в HTML-дизайн, где я могу легче получить идентификатор клика. Спасибо

0 ответов

Другие вопросы по тегам