何かが選択されると、スクリプトがボタンをクリックし、選択可能な値をポストバックします。しかし、私の ASP.NET Ajax と UpdatePanels ではうまくいきません。部分的なポストバックではなく、完全なポストバックが発生することがあります。
私のデバッグからの私の結論は、停止機能の実行中に jQuery が舞台裏で何かを行っているということです。停止機能を停止するアラートを追加すると、部分的なポストバックが正常に機能します。
さらに混乱を招くことに、これはIE9
およびでは機能しますが、またはでは機能しChrome
ません。したがって、ブラウザ固有の可能性もあります。IE7
IE8
jQuery のバージョン: v1.6.2
脚本:
<script language="javascript">
$('.selectable').live("mouseover", function () {
if (!$(this).data("selectable-init")) {
$(this).data("selectable-init", true);
$(this).selectable({
filter: '.item',
stop: function () {
$("#<% =btnPostback.ClientID %>").click();
}
});
}
});
</script>
HTML:
<div class="selectable">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Literal ID="litIsPostback" runat="server"></asp:Literal>
<asp:Button ID="btnPostback" runat="server" OnClick="btnPostback_OnClick" />
</ContentTemplate>
</asp:UpdatePanel>
コードビハインド:
protected void btnPostback_OnClick(object sender, EventArgs e)
{
litIsPostback.Text = ScriptManager.GetCurrent(this).IsInAsyncPostBack.ToString();
}