我在制作fixedTableHeader 时遇到了麻烦。我找到了一个 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 Developer 工具栏并查看脚本是否已加载?!?!?关于为什么它不可用的任何想法?
编辑::
现在我尝试直接在标记中加载脚本 - 然后它按预期工作。但是,一旦我尝试使用嵌入式资源加载它们,它就会失败并且无法识别fixedTableHeader
为函数
$(document).ready(function () {
if(jQuery.isFunction($('table#" + ClientID + "').fixedTableHeader)){
$('table#" + ClientID + "').fixedTableHeader({ height:200, width:'100%' });
}else{
alert('unable to load scroll script');
}
});