2013-03-14 28 views
1

我正在使用ASP.Net ScriptManager控件。它已經在頁面上了。我無法得到這個AJAX在ASP.Net/C#火焰

<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來完成這個任務,而不需要插件的容器作爲服務器控件?

+0

,你想什麼確切的插件使用什麼特定的錯誤你在控制檯中得到什麼? – balexandre 2013-03-14 23:05:34

+0

我沒有在控制檯中發現錯誤,除非我使用RegisterStartupScript。該插件是:http://www.eyecon.ro/colorpicker/。 – mishmomo 2013-03-14 23:08:24

回答

2

<%= %>是服務器代碼; JavaScript不能執行它。所以你想從服務器端傳遞控制的客戶端ID。

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

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

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

所以這在StringBuilder中呢? (不要緊,這很明顯)。我需要將'