gpt4 book ai didi

c# - RegisterStartupScript 似乎无法处理更新面板中的页面回发

转载 作者:可可西里 更新时间:2023-11-01 03:06:30 27 4
gpt4 key购买 nike

好的 - 我正在使用自定义日期选择器控件的系统上工作(我知道还有其他控件......但为了保持一致性,我想了解为什么我当前的问题会发生并修复它)。

因此它是一个带有文本框的自定义用户控件,并且在 Page_PreRender 上执行此操作:

protected void Page_PreRender(object sender, EventArgs e)
{

string clientScript = @"
$(function(){
$('#" + this.Date1.ClientID + @"').datepicker({dateFormat: 'dd/mm/yy', constrainInput: true});
});";
Page.ClientScript.RegisterStartupScript(this.GetType(), this.ClientID, clientScript, true);

//Type t = this.GetType();
//if (!Page.ClientScript.IsStartupScriptRegistered(t, this.ClientID))
//{
// Page.ClientScript.RegisterStartupScript(t, this.ClientID, clientScript, true);
//}
}

忽略注释掉的东西 - 那是我尝试不同的东西 - 没有帮助。

我的问题是,当我加载页面时,一切正常。但是,如果我从导致页面回发的下拉列表中选择某些内容 - 当我单击我的日期字段时,它们将停止工作。正如我应该能够单击文本框并出现一个漂亮的日历控件。但是回发后没有出现漂亮的日历控件!

它目前全部包含在更新面板中(在托管页面中)。所以我注释掉了更新面板的内容,并且日期在页面回发后有效。所以它似乎与那个更新面板有关。

有什么建议吗?

谢谢!!

最佳答案

您是否尝试过使用 ScriptManager 而不是 Page.ClientScript?我查看了一些我之前使用 UpdatePanels 和 jQuery 编写的代码,并且我使用了 ScriptManager。我认为如果脚本未在 ScriptManager 中注册,则该脚本在部分回发期间不可用。

看起来像这样:

ScriptManager.RegisterStartupScript(Page, this.GetType(), "DatePickerScript", clientScript, true);

关于c# - RegisterStartupScript 似乎无法处理更新面板中的页面回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com