有没有办法将Ajax手风琴索引设置为当前视图以进行自动回发



>我有一个Ajax手风琴,我将默认的选定索引设置为-1,因此所有窗格都已关闭。每个窗格都有几个不同的控件,有些控件会执行自动回发,当自动回发发生时,当然所有窗格都会折叠。

那么是否可以将其在页面加载时设置为选定的索引-1,并在回发时将所选索引设置为回发之前的状态?

如果我能澄清我的问题中的任何内容,请告诉我,以及我可以提供的任何代码截图,我会的。 -后面的代码是 C#

谢谢

//My Accordion
 <ajaxtoolkit:accordion ID="MyAccordion" runat="Server" 
     HeaderCssClass="aHeader"  HeaderSelectedCssClass="aSelected"
     ContentCssClass="aContent" AutoSize="None" FadeTransitions="true"
     TransitionDuration="250" FramesPerSecond="40" RequireOpenedPane="false" 
     SuppressHeaderPostbacks="true" Height="894px" style="margin-right: 23px" 
     Width="717px">
//Page Load Event
 protected void Page_Load(object sender, EventArgs e)
    {
        if (ViewState["SelectedAccordionIndex"] == null)
        {
            MyAccordion.SelectedIndex = -1;
        }
        else
        {
            MyAccordion.SelectedIndex = (int)ViewState["SelectedAccordionIndex"];
        }
        if (!IsPostBack)
        {
            LoadPage();
        }
    }
    //drop down list set to auto post back
    protected void dropdownlist_SelectedInexChange(object sender, EventArgs e)
    {
        ViewState["SelectedAccordionIndex"] = MyAccordion.SelectedIndex;
    }

为此,我会使用视图状态或查询字符串变量。 在Page_Load中检查是否存在,如果未将selectedindex设置为 -1,否则将其设置为视图状态或查询字符串中的值。

当然,在导致回发的区域中,您需要将索引值存储在查询字符串或视图状态中。如果我是你,我会使用视图状态。

URL 中有一个属性 hastag,可让您执行许多操作,例如

http://host/section/accordion  <-- default
//Pseudocode
if(hashtag == null)
{
   selectedIndex = -1;
}
else
{ 
  selectedIndex = hashtag.value;
}
http://host/section/accordion#1 <-- selectedIndex == 1
http://host/section/accordion#2 <-- selectedIndex == 2

在 JavaScript 中,您可以获得这样的主题标签window.location.hash

您甚至可以在stackoverflow中找到一个例子,例如,当您从菜单中单击某人答案的答案时,向您收取问题专门针对响应和突出显示的费用

最新更新