如何在更新面板内的 gridview 内使用带有 javascript 的 CustomControl?
当我想使用 gridview 和 updatePanel 添加自定义控件时,我遇到了麻烦。 即使我直接在 RenderContent 方法中编写 JavaScript 函数,也永远不会将其添加到页面中。
该页面是:
UpdatePanel 网格视图 编辑项目 自定义控件
” SelectCommand="从 [APP_ROLE] 选择 *">
自定义控件如下所示:
[ToolboxData("<{0}:TestControl runat=server>")] 公共类测试控件:WebControl { 受保护的重写 void OnInit(EventArgs e) { 基.OnInit(e);
string script = "<SCRIPT type=\"text/javascript\">\n" +
"function show_" + ClientID + "(){alert('toto');}" +
"</SCRIPT>\n";
if (Page.ClientScript.IsClientScriptBlockRegistered("show_" + ClientID))
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "show_" + ClientID, script);
}
protected override void RenderContents(HtmlTextWriter writer)
{
writer.WriteLine("<a href=\"javascript:show_" + ClientID + "();\">click</a>");
}
}
谁能帮我 ?
干杯。
I got trouble when I want to add my custom control with an gridview and an updatePanel.
The javascript function is never added to the page even if I write it directly inside the RenderContent method.
The page is :
UpdatePanel
GridView
EditItem
CustomControl
"
SelectCommand="SELECT * FROM [APP_ROLE]">
The custom constrol looks like that :
[ToolboxData("<{0}:TestControl runat=server>")]
public class TestControl : WebControl
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
string script = "<SCRIPT type=\"text/javascript\">\n" +
"function show_" + ClientID + "(){alert('toto');}" +
"</SCRIPT>\n";
if (Page.ClientScript.IsClientScriptBlockRegistered("show_" + ClientID))
Page.ClientScript.RegisterClientScriptBlock(Page.GetType(), "show_" + ClientID, script);
}
protected override void RenderContents(HtmlTextWriter writer)
{
writer.WriteLine("<a href=\"javascript:show_" + ClientID + "();\">click</a>");
}
}
Can anyone help me ?
Cheers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来您的 if 语句正在检查脚本块是否存在,然后仅在脚本块已经存在时添加脚本块。
我会取出 if 语句,看看会发生什么。
It looks like your if statement is checking for the existence of the script block, then adding the script block only if it already exists.
I'd take out that if statement and see what happens.