2012-09-26 46 views
0

我無法制作一個fixedTableHeader。我發現了一個jQuery插件,可以在簡單測試中正常工作。但我需要將它作爲嵌入式資源包含在WebControl中。jquery插件加載但WebControl中'不可訪問'

所以我心中已經登記在Assembly.cs腳本,並將它們設置爲「嵌入的資源」

在WebControl的他們註冊這樣的:

this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "jquery", Page.ClientScript.GetWebResourceUrl(this.GetType(), "LRGrid.jquery_min.js")); 

var fixedScript = Page.ClientScript.GetWebResourceUrl(this.GetType(), "LRGrid.jquery_fixedheadertable.js"); 

this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "fixedheadertable", fixedScript); 

this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "jquery", Page.ClientScript.GetWebResourceUrl(this.GetType(), "LRGrid.jquery.tablescroll.js")); 

然後以打電話劇本我做的:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "SetTable" + ClientID, "; $(document).ready(function(){$('table#" + ClientID + "').fixedHeaderTable({ footer: false, cloneHeadToFoot: false, fixedColumn: false });});", true); 

現在,如果我測試在Firefox,我得到

.fixedTableHeader is not a function 

IE9告訴我method not supported

我可以使用Firebug或IE開發者工具欄和看到腳本加載?!?!?任何想法,爲什麼它不可用?

編輯:: 現在我試圖直接在標記中加載腳本 - 然後它按預期工作。但只要我嘗試使用嵌入資源失敗加載它們並不會承認fixedTableHeader作爲函數

$(document).ready(function() { 
    if(jQuery.isFunction($('table#" + ClientID + "').fixedTableHeader)){ 
     $('table#" + ClientID + "').fixedTableHeader({ height:200, width:'100%' }); 
    }else{ 
     alert('unable to load scroll script'); 
    } 
}); 
+0

您可以向我們展示元素出現的呈現HTML代碼片段?我的想法是,您嘗試匹配的ID與您的腳本所尋找的ID不同 –

+0

Sure @RobAllen - 任何可能有助於清除此問題的內容;) 表標記爲: '

woodbase

回答

0

好了 - 這樣的錯誤定位於另一個文件...壞消息!

我已經從BasePage的加載的jQuery(或其他人做了一次;))

Page.ClientScript.RegisterClientScriptInclude(
    typeof (WebPageBase), "jQuery", ResolveUrl("~/Scripts/jquery-1.4.1.js")); 

這相沖突以我的控制,當我試圖加載jQuery的存在......現在我不想從任一位置刪除jQuery初始化。所以我決定讓BasePage負載有條件。由於BasePage的有LRGrid知識,而不是周圍的其他方式...

所以這裏的解決方案:

if (!Page.ClientScript.IsClientScriptIncludeRegistered(typeof(LRGrid.LRGrid), "jquery")) 
     { 
     Page.ClientScript.RegisterClientScriptInclude(
      typeof (WebPageBase), "jQuery", ResolveUrl("~/Scripts/jquery-1.4.1.js")); 
     } 

希望有您都可以使用它:-P