0

我已经在按钮单击时将包含按钮和 javascript 的 html div 注入到 Ektron 小部件中。但是当我单击注入的按钮时,不会调用 javascript 函数。如果我在 Ektron 小部件的 Page_Load 中注入脚本,则 java 脚本函数正在完美调用。

请检查这个。

默认.ascx.cs

 public partial class Workarea_Widgets_test : WorkareaWidgetBaseControl, IWidget
      {
         protected void Page_Load(object sender, EventArgs e)
          {

          }
         protected void Button1_Click(object sender, EventArgs e)
          {
            HtmlDiv.InnerHtml = "<div id='divid'>Name :<input  type='button'  
            id='Name' name='Name' value='Injected Button' onclick='return   test();'/> 
            </div><script type='text/javascript' >function test()
            {alert('test  passed!');} </script>"; 

            HtmlDiv.Style.Add("display", "block");
           }
      }

默认.ascx

    <div id="Div1"  runat="server" class="HtmlDiv" style="display:block" >
      <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"  />
    </div>
    <div id="HtmlDiv" runat="server">
    </div>

如果我在小部件的页面加载中注入 html 和 javascript,则 javascript 功能正在运行。如果它在按钮中单击,则它不起作用。

我用 aspx 页面尝试了这段代码,它工作正常....

Ektron Widget 是否存在任何依赖项。

请任何人回复。

4

1 回答 1

0

您是否有理由不只做所有这些客户端(JavaScript)?

然而,要回答您的问题,Ektron 小部件只是一个 ASP.NET Web 用户控件。您必须管理 Web 用户控件的状态,这意味着当您在回发时设置 HtmlDiv 控件的属性时,您有责任保留这些值。

有关详细信息,请参阅 Microsoft 的ASP.NET 状态管理建议,但是您的状态选项包括:

  • 查看状态
  • 控制状态
  • 隐藏字段
  • 饼干
  • 查询字符串

在这种情况下,View State 或 Control State 最适合您。

不过,我再次质疑为什么你需要做这个服务器端。

于 2013-04-16T16:38:42.553 回答