AjaxToolKitのdropdownlistextenderを使用してドロップダウンリストを作成しようとしています。私は次のマークアップを持っています:
<asp:Label ID="ddTest" runat="server" Text="Transactions" Width="300px" BorderColor="#C0C0C0" CssClass="selecter"/>
<ajaxToolkit:DropDownExtender runat="server" ID="ddeSections"
TargetControlID="ddTest" DropDownControlID="panelItems" HighlightBackColor="Silver"
DropArrowBackColor="white" HighlightBorderColor="Silver"/>
「リスト」アイテムについては、次のとおりです。
<table runat="server" id="ctlOptions" class="options" cellspacing="2" cellpadding="2" border="1">
<tr><td class="item" onmouseover="mouseOver(this)" onmouseout="mouseOut(this)" onclick="clickIt(this)">Transactions</td></tr>
<tr><td class="item" onmouseover="mouseOver(this)" onmouseout="mouseOut(this)" onclick="clickIt(this)">The second option</td></tr>
<tr><td class="item" onmouseover="mouseOver(this)" onmouseout="mouseOut(this)" onclick="clickIt(this)">The third option</td></tr>
<tr><td class="item" onmouseover="mouseOver(this)" onmouseout="mouseOut(this)" onclick="clickIt(this)">The fourth option</td></tr>
<tr><td class="item" onmouseover="mouseOver(this)" onmouseout="mouseOut(this)" onclick="clickIt(this)">The fifth option</td></tr>
</table>
私のJavaScriptは次のようになります。
function mouseOver(obj) {
if (obj) obj.className = 'itemOver';
}
function mouseOut(obj) {
if (obj) obj.className = 'item';
}
ここで、itemとitemOverは適切なスタイルのCSSクラスです。問題は、onclickイベントがサーバー上でSelectedIndexChangedタイプのイベントをトリガーすることです。私はこの関数を試しました:
function clickIt(obj) {
var ddTest = document.getElementById("ctl00_ContentPlaceHolder1_ddTest");
var selVal = '';
if (ddTest) {
selVal = obj.firstChild.nodeValue;
ddTest.firstChild.nodeValue = selVal;
__doPostBack('<%=ddSections.ClientID %>', '');
}
}
ddSectionsは、asp:Dropdown
私が起動しようとしているOnSelectedIndexChangedイベントです。
これにより、ページレベルのポストバックがトリガーされますが、トリガーするddSections_SelectedIndexChangedサーバー側メソッドはトリガーされません。ちなみに、ddSectionsは非表示になります。
アドバイスをお願いします。私はこれを理解するために3日間を費やし、手ぶらで出てきました。読みやすくするために、自由に再フォーマットしてください。前もって感謝します。