gpt4 book ai didi

c# - Greybox GB_showcenter 不显示弹出窗口

转载 作者:太空宇宙 更新时间:2023-11-03 13:15:46 24 4
gpt4 key购买 nike

我正在使用 GreyBox js 库来显示弹出窗口。为了提供更一般的上下文,我将 VB.NET 中的解决方案重写为 C#。两者的代码本质上是相同的,只是两者使用的语法不同。但是,以下内容适用于 VB.NET 解决方案,但不适用于 C# 版本:

VB

script = String.Format("GB_showCenter('My Caption', '../MyPage.aspx?number={0}&state={1}&ID={2}',300,600 );", num, MyLabel.Text, Label_id.Text)

ScriptManager.RegisterClientScriptBlock(Me.Page, Me.Page.GetType(), Guid.NewGuid().ToString(), script, True)

这有效,当单击按钮时,它会将用户导航到一个大小受限的新页面。但是,以下内容不起作用。

C#

script = String.Format("GB_showCenter('MyCaption', '../MyPage.aspx?number={0}&state={1}&ID={2}',300,600 );", num, MyLabel.Text, Label_id.Text);

ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), Guid.NewGuid().ToString(), script, true);

应该发生的是当我单击链接按钮时,MyLabel 中的文本被评估,如果文本是正确的,那么字符串“script”被适本地设置并在脚本管理器中注册。通过 VS2010 调试器运行,这一切都按预期发生。但是,用户未导航到名为“MyPage.aspx”的新页面。网址保持不变,页面变为空白。

更有趣的是,如果我单击滚动条,当前页面会短暂显示,并在同一页面上显示其上方的新弹出窗口。所以我目前的理论是,这与如何从 c# 调用 javascript 有关。有什么想法吗?

更新

我检查了 vs2010 调试器并决定查看 MyPage.aspx 是否被命中。事实并非如此,正如我所料。但是,我随后认为它可能没有触发它的 Page_Load 事件。所以我添加了:

protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Load += Page_Load;
}

我在 MyPage.aspx 的 Page_Load 事件上设置了一个断点,它现在被命中了。所有逻辑都正确运行,但我仍然遇到同样的问题(空白页等,url 未更改为 MyPage.aspx 等)。

最佳答案

我找到了答案,尽管它与 GreyBox 并没有特别的关系。当它应该是一个链接并添加了不正确的属性时,我错误地制作了一个脚本。类型应该是 text/css 时是 text/javascript。这似乎有所作为。为了提供更多上下文,我有以下内容:

 HtmlGenericControl Link5 = new HtmlGenericControl();
Link5.TagName = "script";
Link5.Attributes.Add("href", ResolveClientUrl("~/MyApp/Greybox/gb_styles.css"));
Link5.Attributes.Add("rel", "stylesheet");
Link5.Attributes.Add("type", "text/javascript");
Page.Header.Controls.Add(Link5);

'TagName' 应该是 'link' 并且 Link5.Attributes.Add("type", "text/javascript") 应该是 'text/css'。

关于c# - Greybox GB_showcenter 不显示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26276394/

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