3

在 ASP.NET 4 网站中

当单击 ajax 手风琴标头时,我需要触发服务器端 C# 函数,将标头数据值传递给函数。手风琴是从数据库中填充的。如何创建事件以调用 C# 函数?

<ajaxToolkit:Accordion ID="acc1" runat="server" Width="300px" 
     HeaderCssClass="accHeader" ContentCssClass="accContent" CssClass="accMain"
     FadeTransitions="true" SuppressHeaderPostbacks="false" TransitionDuration="250" RequireOpenedPane="false"
     HeaderSelectedCssClass="accSelHeader" FramesPerSecond="40">
        <HeaderTemplate><b><%#DataBinder.Eval(Container.DataItem, "CompanyName") %></b></HeaderTemplate>
        <ContentTemplate>
        <%#DataBinder.Eval(Container.DataItem, "CompanyName") %><br />
        <%#DataBinder.Eval(Container.DataItem, "Street")%><br />
        <%#DataBinder.Eval(Container.DataItem, "City")%><br />
        <%#DataBinder.Eval(Container.DataItem, "StateOfFacility")%><br />
        <%#DataBinder.Eval(Container.DataItem, "ZipCode")%><br />
        <%#DataBinder.Eval(Container.DataItem, "Phone")%><br />
        <%#DataBinder.Eval(Container.DataItem, "URL")%><br />
        </ContentTemplate>
 </ajaxToolkit:Accordion>
4

1 回答 1

1

在标题中使用 LinkBut​​ton 并处理 Accordion 的 ItemCommand 事件,如下所示:

 <HeaderTemplate>
      <asp:LinkButton runat="server" Text='<%# Eval("CompanyName") %>'  
           CommandName="Select" CommandArgument='<%# (int)Eval("Id")  %>' />
 </HeaderTemplate>

void acc1_ItemCommand(object sender, CommandEventArgs e)
{
    if (e.CommandName == "Select")
    {
        var companyId = e.CommandArgument;
    }
}

请注意,您需要提供公司唯一标识符以区分单击的公司窗格。

于 2012-11-05T08:28:36.927 回答