2012-01-30 23 views
1

ユーザーがDropDownListコントロールで要素を選択すると、Webパーツ(SharePoint2010)でaspコントロール(ラベルとテーブル)を更新する必要があります。 DropDownListにEventHandlerを追加して、ラベルとテーブルのセルを編集しました。(Webパーツの)UpdatePanelでコンテンツが更新されない

asp:AsyncPostBackTriggerトリガーを使用して、asp:UpdatePanelを使用しています。

VS2010でデバッグすると、サーバー側のメソッドが呼び出され、ラベルと表のセルが更新されていることがわかります。

ただし、AJAX呼び出しが返されたときにコントロールがWebパーツで更新されません。 FireBugコンソールでHTTPレスポンスを監視すると、サーバーが更新されたコントロールの値を返さないことがわかります。ここで

はascxファイルのコードです:

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" 
    OnSelectedIndexChanged="listBoxSelectedIndexChanged"> 
</asp:DropDownList> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <asp:Label ID="testlabel" runat="server">test</asp:Label> 
     <asp:Table ID="Table1" runat="server" Height="100px" Width="253px" 
      CellPadding="1" CellSpacing="1" CssClass="marcheFonds"> 
     </asp:Table> 

    </ContentTemplate> 

    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" /> 
    </Triggers> 
</asp:UpdatePanel> 

そして(部分クラスのListeUserControl:ユーザーコントロール)listBoxSelectedIndexChangedサーバ側の方法では、私はこれやっている:

Table1.Rows[i].Cells[j].Text = rate.month1; 
Table1.Rows[i].Cells[j].Text = rate.month2; 
Table1.Rows[i].Cells[j].Text = rate.month3; 
Table1.Rows[i].Cells[j].Text = rate.month6; 
Table1.Rows[i].Cells[j].Text = rate.month12; 

testlabel.Text = rate.code; 

を私は使用していませんグリッドビューは、テーブルの構造が複雑であるためです。

どうぞよろしくお願いします。

答えて

0

ユーザーのコメントでhereをご覧ください。ポストバックの動作の問題は、SharePoint 2010では同じです。EnsurePanelFix() - メソッドを実装してみてください。

+0

このリンクの2つのサンプルは私のためには機能しません。とにかく – Dino

関連する問題