-1

1ページに9つの折りたたみ可能なパネルがあります。jQueryまたはC#コードビハインドのいずれかからそれらを展開または折りたたむことができます。私が何かを壊すまではすべて正常に機能していましたが、$ find(cpe)は9つのうち2つに対してnullを返します。

パネルは定義されてC#に表示されますが、DOM(Firebug)のouterHTML設定は問題を示唆しています。

これらの作品:

<input name="ctl00$body$cpOutsideSales_ClientState" id="ctl00_body_cpOutsideSales_ClientState" value="true" type="hidden">
<input name="ctl00$body$cpGeneral_ClientState" id="ctl00_body_cpGeneral_ClientState" value="false" type="hidden">

これらは機能しません:

<input name="ctl00$body$cpDuties_ClientState" id="ctl00_body_cpDuties_ClientState" type="hidden">
<input name="ctl00$body$cpAnalyst_ClientState" id="ctl00_body_cpAnalyst_ClientState" type="hidden">

問題は、「value ='true'」が欠落していることですが、それを設定する明確な方法がわかりません。これが機能するものの宣言です:

<asp:CollapsiblePanelExtender ID="cpGeneral" runat="server" 
    TargetControlID="pnlGeneral" 
    BehaviorID="cpGeneral" 
    TextLabelID="lblGeneral" 
    SuppressPostBack="true" 
    Collapsed="true" 
    ImageControlID="icnGeneral" 
    ExpandControlID="pnlGeneralcp" 
    CollapseControlID="pnlGeneralcp"
    ExpandedText="Collapse" 
    CollapsedText="<b>Position/Organization</b>">
</asp:CollapsiblePanelExtender>

そしてそうでないもの:

<asp:CollapsiblePanelExtender ID="cpDuties" runat="server" 
    TargetControlID="pnlDuties"
    BehaviorID="cpDuties" 
    TextLabelID="lblDuties" 
    SuppressPostBack="true" 
    Collapsed="true"
    ImageControlID="icnDuties" 
    ExpandControlID="pnlDutiescp" 
    CollapseControlID="pnlDutiescp"
    ExpandedText="Collapse" 
    CollapsedText="<b>Duties</b>">
</asp:CollapsiblePanelExtender>

C#でClientStateを設定しようとしましたが、コードは実行されますが、jQueryコードはまだコントロールを見つけることができません。IEこれは、pn = "cpGeneral"の場合は機能しますが、pn ="cpDuties'の場合​​は失敗します。

function addPanelHandler(panel, pn) {
    extender = $find(pn);
    if (extender != null) {
        extender.add_expanded(function () {
            loadPanel(panel, pn);
        });
    }
}

これがFireBugからの画像です。9つのうち2つから「真」が欠落していることに注意してください。 ここに画像の説明を入力してください

4

2 に答える 2

0

この2つがうまくいかない理由はわかりません。入力/データ関連だと思います。
ただし、これは迅速なチェックであるため:
1) 別のブラウザを試してください。そしてもう一つ。
それらがすべて同じように動作する場合:
2) addPanelHandler への入力が完全に正しいことを確認します。もしそうなら、入力と問題をラバーダックする人を見つけてください。
3) それでも問題が解決しない場合: 当面は aspnet を使用せず、コードをコピーして HTML に貼り付け、コードを抽出します。私見:サーバーを取り除くと、デバッグのターンアラウンドが速くなります。


于 2012-10-22T18:30:22.130 に答える
-1

これの原因に対する決定的な答えは思いつきませんでしたが、コントロールを慎重に再作成することで、機能する別のコントロールを作成し、機能を悪いコントロールから良いコントロールに徐々に移動させました. コントロールの宣言で何かに分離することができましたが、それは私が得た限りです。

于 2012-10-29T22:13:22.780 に答える