我真的很喜欢SubSonic 2.2的日历控件。它是发现here的旧Dynarch日历的.Net实现。
因此,我做了任何开发人员都会做的事情,我滑动日历的所有代码,并将其放入自己的库中。
不幸的是,日历不能很好地与更新面板配合使用。
我得到了帮助here让日历在更新面板中工作,但是我仍然有一个问题,如果日历在更新面板中,并且在第一次请求时看不到它,指向JavaScript文件的脚本标记就不会呈现。
下面是实现这一点的代码。
protected override void OnPreRender(EventArgs e)
{
string csslink = "<link href='" + Page.ClientScript.GetWebResourceUrl(GetType(), IncludeAssemblyPrefix + "skin.theme.css") + "' rel='stylesheet' type='text/css' />";
Page.Header.Controls.Add(new LiteralControl(csslink));
Page.ClientScript.RegisterClientScriptInclude("CalendarMain", Page.ClientScript.GetWebResourceUrl(GetType(), IncludeAssemblyPrefix + "calendar.js"));
Page.ClientScript.RegisterClientScriptInclude("CalendarSetup", Page.ClientScript.GetWebResourceUrl(GetType(), IncludeAssemblyPrefix + "calendar-setup.js"));
string langPrefix = IncludeAssemblyPrefix + "lang.calendar-";
if (String.IsNullOrEmpty(Language))
Language = DEFAULT_LANGUAGE;
if (Assembly.GetExecutingAssembly().GetManifestResourceStream(langPrefix + Language + ".js") == null)
Page.ClientScript.RegisterClientScriptInclude("CalendarLanguage", Page.ClientScript.GetWebResourceUrl(GetType(), langPrefix + DEFAULT_LANGUAGE + ".js"));
else
Page.ClientScript.RegisterClientScriptInclude("CalendarLanguage", Page.ClientScript.GetWebResourceUrl(GetType(), langPrefix + Language + ".js"));
base.OnPreRender(e);
}
public string IncludeAssemblyPrefix { get { return Assembly.GetExecutingAssembly().GetName().Name + "."; } }所以我的问题是,当控件不可见时,我如何让RegisterClientScriptInclude调用工作?
发布于 2010-11-02 07:05:41
我最终在页面上添加了第二个日历,并带有style="display: none ;“,这不是一个很好的修复,但仍然是一个修复。
https://stackoverflow.com/questions/3925466
复制相似问题