0

在我的 DataList 中,我希望一个按钮与 FA 图标一起显示,所以我使用了一个 html 按钮并将其设为 runat="server",现在当我单击该按钮时,我想知道 Datalist 项是否与此按钮“绑定” .

我尝试使用 asp.net 按钮,但那时我无法使用 FA 图标。

这是我的 html 和 c# 代码的样子:

<asp:DataList Width="100%" ID="dtlFAQSections" runat="server" DataSourceID="dtsFAQSections" DataKeyField="FAQSectionID">
    <ItemTemplate>
         <h2>
             <button id="btnFAQSection" runat="server" onserverclick="btnFAQSection_Click" style="background-color:#f24646; border:none; color:white; margin-left:25px; font-size:16px; cursor:pointer; height: 26px; width: 26px; margin-right: 5px; border-radius:30%;"><i class="fas fa-plus"></i></button>
             <asp:Label Font-Size="18px" ID="FAQSectionNameLabel" runat="server" Text='<%# Eval("FAQSectionName") %>' />
         </h2>
         <hr style="border: 1px dotted #000000; border-style: none none dotted; color: #fff; background-color: #fff;"/>
    </ItemTemplate>
</asp:DataList>

protected void btnFAQSection_Click(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    DataListItem item = (DataListItem)btn.NamingContainer;
}
4

1 回答 1

1

首先,您需要使用,HtmlButton因为您没有将 ASP 控件用作按钮。然后只需找到父级。

protected void btnFAQSection_Click(object sender, EventArgs e)
{
    HtmlButton btn = (HtmlButton)sender;
    DataListItem item = (DataListItem)btn.NamingContainer;

    //now you can access the DataListItem
    Label label = item.FindControl("FAQSectionNameLabel") as Label;
    label.Text = "DataListItem Found";

    //or if you want to get the parent DataList
    DataList dl = btn.Parent.Parent as DataList;

    Label1.Text = dl.ID;
}
于 2019-07-27T10:44:04.523 回答