ASP.NET Ajax Accordion头事件

时间:2012-11-05 05:34:38

标签: c# asp.net asp.net-ajax ajaxcontroltoolkit

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>

1 个答案:

答案 0 :(得分: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;
    }
}

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