1

ASP.Net ScriptManager コントロールを使用しています。それはすでにページにあります。

<asp:UpdatePanel ID="UpdatePanel3" runat="server">
    <ContentTemplate>
        <asp:Panel ID="cpBox" Visible="false" runat="server">
            <!-- jQuery plugin goes here -->
        </asp:Panel>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ddlColorChart" />
    </Triggers>
</asp:UpdatePanel>

C#:

protected void ddlColorChart_SelectedIndexChanged(object sender, EventArgs e)
{
    if (ddlColorChart.SelectedValue == "1")
    {
        // cpBox.Visible = true;
        /* StringBuilder colorPicker = new StringBuilder();
        colorPicker.Append("$(document).ready(function() {");
        colorPicker.Append("$('#<%=colorPickerBox.ClientID %>').ColorPicker({ flat: true });");
        colorPicker.Append("})");
        ScriptManager.RegisterStartupScript(colorPickerBox, this.GetType(), "colorPicker", colorPicker.ToString(),  true);
        */
    }
}

jQuery:

<script type="text/javascript"">
    $(document).ready(function () {
        $('#<%=colorPicker_Box.ClientID %>').ColorPicker({ flat: true });
    });
</script>

ご覧のとおり、使ってみScriptManager.RegisterStartupScriptました。jQueryプラグインを表示する方法を理解することはできません。私はjQuery AJAXで試してみましたが、迷子になりました。

編集:プラグインを通常の div に保持すると機能することがわかっています。追加すると、機能'runat="server",'しなくなります(これは理にかなっています)。プラグインのコンテナーをサーバー コントロールにせずに、ASP.Net AJAX を使用してこれを達成する方法はありますか?

4

1 に答える 1

2

<%= %>サーバーコードです。JavaScriptはそれを実行できません。したがって、サーバー側からコントロールのクライアントIDを渡す必要があります。

colorPicker.Append("$('#" + colorPickerBox.ClientID " + 
   "').ColorPicker({ flat: true });");

更新:ColorPickerがサーバーコントロールでない場合は、さらに簡単です-

colorPicker.Append("$('#colorPickerBox').ColorPicker({ flat: true });");
于 2013-03-14T23:09:05.053 に答える