我无法让这个AJAX在ASP.Net/C#中触发

本文关键字:Net ASP AJAX | 更新日期: 2023-09-27 18:03:54

我正在使用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没有容器的插件是一个服务器控件?

我无法让这个AJAX在ASP.Net/C#中触发

<%= %>为服务器代码;JavaScript无法执行它。所以你想从服务器端传递控件的客户端id。

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

更新:如果ColorPicker不是服务器控制,它更容易-

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