2015-11-07 96 views
0

从服务器端,我向客户端动态注入输入和按钮元素。我也想在每个中注入一个JavaScript函数。输入的功能应该被触发onchange和按钮的,应该是onclick如何将JavaScript函数添加到代码隐藏的HmlGenericControl中

这是我迄今所做的:

//js definition 
string script = @"<script>"; 

script += @" function OnCroquis0BtnClick() 
      { 
       var fileUp = $('#File'); 

       fileUp.trigger('click'); 
      }"; 

script += @"function OnCroquis0FileSelected() 
      { 
       txtBx = document.getElementById('MainContent_txtBx'); 

       var fileUpload = document.getElementById('File'); 

       txtBx.value = fileUpload.files[0].name; 

      }"; 

script += @"</script>";  

ClientScript.RegisterClientScriptBlock(GetType(), "testScript0" , 
script);  

//html elemets definition 
HtmlGenericControl input = new HtmlGenericControl(), 
        btn = new HtmlGenericControl(); 

input.TagName = "input"; 

input.ID = lbl.Text + "File"; 

input.Attributes["onchange"] = "OnCroquis0Fileselected()"; 

input.Attributes["style"] = "display: none;"; 

docRequeridosMainDiv.Controls.Add(input); 

btn.TagName = "button"; 

btn.ID = "btn"; 

btn.InnerText = "Anejar"; 

btn.Attributes["onclick"] = "OnCroquis0BtnClick(); return false"; 

btn.Attributes["style"] = "margin-right:2%;"; 

docRequeridosMainDiv.Controls.Add(btn); 

他们是可见的,风格的被应用,但JS是不是。由于任何html属性都是通过Attributes["attri"]添加的,所以我认为js函数可能也是如此。

谢谢,提前。

回答

0

管理得到它的工作。在我的版本中,我有错误的功能名称:P

0

尝试使用替代的RegisterClientScriptBlock

Page.ClientScript.RegisterStartupScript(this.GetType(), "testscript0", script, false); 

的RegisterStartupScript这个强制执行页面中所有的元素被加载后执行该脚本。

相关问题