我有以下手风琴,其中我通过标签显示tenantName并在手风琴标题的隐藏区域中显示。
点击accordionheader我想绑定位于手风琴的contenttemplate中的网格中租户的所有细节。
手风琴结构如下:
<cc1:Accordion ID="MyAccordion" runat="server" ContentCssClass="accordionContent"
FadeTransitions="true" HeaderCssClass="accordionHeader" HeaderSelectedCssClass="accordionHeaderSelected"
RequireOpenedPane="false" SelectedIndex="-1" TransitionDuration="250" Width="100%">
<HeaderTemplate>
<asp:Label ID="lblTenant" runat="server"></asp:Label>
<asp:HiddenField ID="HFTenantID" runat="server" />
</HeaderTemplate>
<ContentTemplate>
<asp:GridView ID="GrdTenantDetails" runat="server" AutoGenerateColumns="true" ShowHeader="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblAddress" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblAlternateAddress" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblContactDetails" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblEmail" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</cc1:Accordion>
我成功地将Accordion标题限制在一起。
但是我必须根据点击的Accordion标题在contenttemplate中绑定网格。
我制作了以下代码:
protected void MyAccordion_ItemDataBound(object sender, AjaxControlToolkit.AccordionItemEventArgs e)
{
if (e.AccordionItem.ItemType == AjaxControlToolkit.AccordionItemType.Header) {
((Label)e.AccordionItem.FindControl("lblTenant")).Text = e.AccordionItem.DataItem("TenantName");
((HiddenField)e.AccordionItem.FindControl("HFTenantID")).Value = e.AccordionItem.DataItem("tenantid");
}
if (e.AccordionItem.ItemType == AjaxControlToolkit.AccordionItemType.Content) {
BindTenantDetailsGrd((GridView)e.AccordionItem.FindControl("GrdTenantDetails"));
}
}
private void BindTenantDetailsGrd(GridView GrdTenent)
{
gc.BindGridView(GrdTenent, "select tenantid,tenantname,Address,AlternateAddress,ContactDetails,Email from TenantMaster where RentActive =0 and PTID=" + ViewState("PTID") + " and PropertyID =" + ViewState("PropertyID") + " Order by CreatedDate desc");
}