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-дизайн, где я могу легче получить идентификатор клика. Спасибо