2012-05-11 5 views
2

私はAjax Accordionを持っており、デフォルトの選択されたインデックスを-1に設定しているので、すべてのペインが閉じられます。各ペインにはいくつかの異なるコントロールがあり、オートポストバックが発生するとオートポストバックが行われるものもあります。もちろん、すべてのペインが崩壊します。Ajax Accordion Indexを自動ポストバックの現在のビューに設定する方法はありますか?

ページロード時に選択されたインデックス-1に設定され、ポストバック時に選択されたインデックスがポストバックの前に設定されていますか?

私の質問で何かを解決することができれば、私に提供できるコードスニペットがあれば教えてください。 #

は、私はこのためのビューステートまたはクエリ文字列変数のいずれかを使用することになり、あなたに

//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; 
    } 

答えて

1

ありがとうございcの背後-codeです。 Page_Loadのいずれかが存在するかどうかを確認し、そうでない場合はselectedindexを-1に設定します。それ以外の場合は、viewstateまたはクエリ文字列の値に設定します。

もちろん、ポストバックの原因となる領域では、クエリ文字列またはviewstateのいずれかにインデックス値を格納する必要があります。もし私があなたなら、私はviewstatesを使用します。

+0

私は現在、これを私のコードに取り入れています。私はpage_loadにifを持っています。これを行うelseと-1を設定すると、次のようになります。MyAccordion.SelectedIndex =(int)ViewState ["SelectedAccordionIndex"]; しかし、私は選択されたインデックスがないので、常に自分のコードを無視して0に設定しています。助言がありますか?そして、あなたの 'Page_Load'の中の –

+0

を削除していただきありがとうございます。ViewState [" SelectedAccordionIndex "] = MyAccordion.SelectedIndex;これはあなたが投稿を元に戻す場所です。投稿または何か – peroija

+0

コードが追加されました。選択されたインデックスを削除してヌル値をチェックできるようになりました。デフォルトで0の選択インデックスになりました。 –

0

あなたがそのようなあなたは右ここであなたも例を見つけることができます。このwindow.location.hash

などのハッシュタグを取得することができますJavaScriptで

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 

として多くのことを行うことができますURL内のプロパティhastagがありますあなたのメニューからあなたが誰かの答えへの回答をクリックすると、例えば、回答とハイライトに具体的に質問があります。

関連する問題