私はAjaxControlToolkitでVisual Studio 2005を使用しています。ModalPopupExtenderを含むaspxページがあります。ユーザーが最初の DropDownList から値を選択すると、2 番目の負荷がかかり、ユーザーは 2 番目の DropDownList から値を選択できます。問題は、2 番目の値が選択されたときに、RadEditor のコンテンツを (Oracle 11g テーブルから) ロードする必要があるということです。 radEditor のコンテンツですが、実際のページの modalPopUpupExtender が postBack にあるたびに、2 番目の DropDownList の値が失われます。WebService を試してみたところ、RadEditor コンテンツをロードできるようになりました。CascadingDropDown の BehaviorID プロパティを試しましたが、webMethod を呼び出して RadEditor コンテンツをロードすることができませんでした。2 番目の DropDownList の値を取得する方法がわかりません。これは私のaspxコードです:
<ajaxToolkit:ModalPopupExtender ID="mpeLstCandidat" runat="server" TargetControlID="btnLstCandidat"
PopupControlID="pnlLstCandidat" BackgroundCssClass="modalBackground" DropShadow="True"
CancelControlID="ibFermerpnlLstCandidat" Enabled="True" DynamicServicePath="" />
<asp:Button ID="btnAssignerLettre" runat="server" Style="display: none" meta:resourcekey="Button8Resource1" />
<ajaxToolkit:ModalPopupExtender ID="mpeAssignerModeleLettre" BehaviorID="mpeLettreBehavior"
runat="server" TargetControlID="btnAssignerLettre" PopupControlID="plnAssignerLettre"
BackgroundCssClass="modalBackground" DropShadow="True" PopupDragHandleControlID="pnlDrag"
DynamicServicePath="" Enabled="True" />
<asp:Panel ID="plnAssignerLettre" runat="server" Style="display: none" CssClass="modalPopup"
Width="900px" EnableViewState="false">
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<ajaxToolkit:TabContainer ID="TC_LettreCand" runat="server" ActiveTabIndex="0">
<ajaxToolkit:TabPanel ID="TP_ListeLettreCand" runat="server" HeaderText="TP_TableReference">
<HeaderTemplate>
Liste
</HeaderTemplate>
</ajaxToolkit:TabPanel>
<ajaxToolkit:TabPanel ID="TP_Formulaire" runat="server" HeaderText="TP_LettreCand">
<HeaderTemplate>
Formulaire
</HeaderTemplate>
<ContentTemplate>
<asp:FormView ID="fvLettreCand" runat="server" Width="100%" HorizontalAlign="Justify"
AllowPaging="True" DataKeyNames="ModeleLettreID" CssClass="SkinCJM" meta:resourcekey="fvTraitementResource1">
<InsertItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" style="width: 100%"> <%--------------------------CascadingDropDow Liste utilisant des WebServices--%>
<td align="left" style="width: 20%" class="css_detailViewHeaderStyle">
<asp:Label ID="Label13" runat="server" SkinID="skin_lblform" Text="Type :"></asp:Label>
</td>
<td align="left" style="width: 80%" class="css_detailViewHeaderStyle">
<asp:DropDownList ID="ddl_TypeLettreListe" runat="server" />
<ajaxToolkit:CascadingDropDown ID="ccd1_Type" runat="server" ServicePath="ModeleLettre_WebService.asmx"
ServiceMethod="ChercherTypesLettre" TargetControlID="ddl_TypeLettreListe" Category="Type"
PromptText="--Choisir type--" />
</td>
</tr>
<tr>
<td align="left" style="width: 20%" class="css_detailViewHeaderStyle">
<asp:Label ID="Label14" runat="server" SkinID="skin_lblform" Text="Modele :"></asp:Label>
</td>
<td align="left" style="width: 80%" class="css_detailViewHeaderStyle">
<asp:UpdatePanel ID="tt" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddl_modLettreListe" runat="server" Enabled="false" OnDataBinding="onDatabinding_Modlettre"
AutoPostBack="true">
</asp:DropDownList>
<ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server" ServicePath="ModeleLettre_WebService.asmx"
ServiceMethod="GetModForType" TargetControlID="ddl_modLettreListe" ParentControlID="ddl_TypeLettreListe"
Category="Modele" PromptText="--Choisir modèle--" UseContextKey="true" LoadingText="...chargement"
BehaviorID="BehIDAssignerLettre" />
</ContentTemplate>
</asp:UpdatePanel>
<script type="text/javascript">
function pageLoad(sender, args){
if($get("ctl00_ContentPlaceHolder1_plnAssignerLettre") != null ){
var sel = $get("ctl00_ContentPlaceHolder1_TC_LettreCand_TP_Formulaire_fvLettreCand_ddl_modLettreListe");
var sv = sel.options[sel.selectedIndex].value;
var test = "test"
alert(sv);
if ($get("ctl00_ContentPlaceHolder1_TC_LettreCand_TP_Formulaire_fvLettreCand_ddl_modLettreListe") != null) {
var Mycdd = $find("BehIDAssignerLettre");
alert("après l'appele de behavior");
alert(sel);
alert(sv);
alert(document.getElementById('<%= fvLettreCand.clientID %>'));
} }
}
function onPopulated(sv, forme)
{
ModeleLettre_WebService.GetContenuLettre(sv, forme, OnComplete, OnError, OnTimeOut);
}
function OnComplete(arg)
{
alert(arg);
}
function OnTimeOut(arg)
{
alert("timeOut has occured");
}
function OnError(arg)
{
alert("error has occured: " + arg._message);
}
</script>
</td>
</tr>
<tr>
<td align="left" style="width: 12%" class="css_detailViewHeaderStyle" valign="top">
<asp:Label ID="LbContenu" runat="server" SkinID="skin_lblform" Text="Contenu :"></asp:Label></td>
<td align="left" style="width: 70%" class="css_detailViewHeaderStyle">
<telerik:RadEditor ID="reContenu" runat="server" EditModes="Design, Html" EnableTheming="True"
Width="100%" Language="fr-FR" Content='<%# Bind("Contenu") %>'>
<CssFiles>
<telerik:EditorCssFile Value="~/App_Themes/ThemeCJM/HTMLEditor.css" />
</CssFiles>
<Tools>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="Bold" />
<telerik:EditorTool Name="Italic" />
<telerik:EditorTool Name="Underline" />
<telerik:EditorTool Name="ForeColor" />
<telerik:EditorSeparator />
<telerik:EditorTool Name="JustifyLeft" />
<telerik:EditorTool Name="JustifyCenter" />
<telerik:EditorTool Name="JustifyRight" />
<telerik:EditorTool Name="JustifyFull" />
<telerik:EditorTool Name="JustifyNone" />
<telerik:EditorSeparator />
<telerik:EditorTool Name="Indent" />
<telerik:EditorTool Name="Outdent" />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="Undo" />
<telerik:EditorTool Name="Redo" />
<telerik:EditorTool Name="Copy" />
<telerik:EditorTool Name="Cut" />
<telerik:EditorTool Name="Paste" />
<telerik:EditorTool Name="PasteFromWord" />
</telerik:EditorToolGroup>
<telerik:EditorToolGroup>
<telerik:EditorTool Name="InsertLink" />
<telerik:EditorTool Name="InsertImage" />
</telerik:EditorToolGroup>
</Tools>
<Content>
</Content>
</telerik:RadEditor>
</td>
</tr>