动态注入的java脚本在Ektron小部件中不起作用

时间:2013-04-15 07:43:55

标签: ektron

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

请检查一下。

Default.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");
           }
      }

Default.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>

如果我在小部件的页面加载中使用javascript注入html javascript函数正在工作。如果它在按钮中单击它不起作用。

我尝试使用aspx页面编写此代码,它工作正常....

Ektron Widget是否存在依赖关系。

任何人都请回复。

1 个答案:

答案 0 :(得分:0)

你有没有理由不只是做这个客户端(JavaScript)?

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

有关详细信息,请参阅Microsoft的ASP.NET State Management Recommendations,但您的州选项包括:

  • 查看状态
  • 控制状态
  • 隐藏的字段
  • 缓存
  • 查询字符串

在这种情况下,查看状态或控制状态最适合您。

但是,我会问你为什么需要这个服务器端。