单击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>
答案 0 :(得分:1)
在标题中使用LinkButton并处理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;
}
}
请注意,您需要提供公司唯一标识符来区分已点击的公司窗格。