ユーザーが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;
を私は使用していませんグリッドビューは、テーブルの構造が複雑であるためです。
どうぞよろしくお願いします。
このリンクの2つのサンプルは私のためには機能しません。とにかく – Dino