0

我正在做一个关于宠物的 C# 3 层项目

在加载第一个网络表单时,我对数据库进行查询并将所有宠物的数据(id、姓名、照片)作为列表显示为带有 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() });
        }       
    }

galPet 是一个

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

这段代码返回了“Pets”的所有“Id”和“Name”,并将其设置为我想要的 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:LinkBut​​ton 中检索 ID,这样我就可以在后面的代码中使用它

我也尝试将事件更改为“OnClick”,但尝试单击它时出现此错误

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

我想知道如何检索 ID 以在后面的代码中使用它,或者是否有另一种方法可以将我的列表传递给 HTML 设计,在那里我可以更轻松地获得点击的 ID。谢谢

4

0 回答 0