Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t访问在文本中的代码隐藏中创建的HTML输入控件_C#_Html_Asp.net_Dynamic Controls - Fatal编程技术网

C# Can';t访问在文本中的代码隐藏中创建的HTML输入控件

C# Can';t访问在文本中的代码隐藏中创建的HTML输入控件,c#,html,asp.net,dynamic-controls,C#,Html,Asp.net,Dynamic Controls,我有一个aspx页面,并添加了文字控件: <asp:Literal runat="server" ID="ControlLiteral"></asp:Literal> 然后,在codebehind中,我使用for语句大量创建控件,其思想如下: ControlLiteral.Text = @"<input id=""txtMaterial1"" type=""text"" value=""escribe un valor"" disabled=""disabl

我有一个aspx页面,并添加了文字控件:

<asp:Literal runat="server" ID="ControlLiteral"></asp:Literal>

然后,在codebehind中,我使用for语句大量创建控件,其思想如下:

ControlLiteral.Text = @"<input  id=""txtMaterial1"" type=""text"" value=""escribe un valor"" disabled=""disabled"" onclick=""somefunction(this)"" style=""width:250px;"" />
ControlLiteral.Text=@”
然后我想在codebehind中的submit按钮后获取值,但问题是我找不到它们,我开始认为codebehind不知道这些控件,尽管我检查了HTML源代码,所有内容都在那里,所以…有什么想法吗

我尝试了以下方法:

  • 在创建控件的字符串中添加了runat=“server”,但当然,它不起作用,它只是在html中添加了文本runat=“server”

  • 请求。表单[“txtMaterial”]或请求[“txtMaterial”]找不到任何内容

  • Page.Controls.Find(“txtmatterial”)返回null

  • 当我这样做时,this.from1.Controls.Count只检索到我在for语句中添加的210个控件中的11个控件,如果像这样检索它们。from1.Controls[2],这些由asp.net引擎创建的无关html标记

  • Page.Controls.Count仅检索5个控件


  • 那些控件在一个表中,不知道它有什么事要做,所以,你有什么想法吗,自从上次我使用asp.net已经有一段时间了,但请记住这是可能的,请让我知道你的想法,

    尝试使用
    提交
    调用javascript中的函数

    __doPostBack(controlid,json.stringify())
    
    例如:

    $scope.btn_generatepdf = function () {
          var myJSON = '';
          for (var i = 0; i < $scope.elements.length; i++) {
               myJSON = myJSON + ($scope.elements[i].value) + '|';
          }
          alert(myJSON);
    
         __doPostBack('btn_generatepdf1', myJSON);
    }    
    

    您不能通过设置文本来创建服务器控件。它不像您将其添加到.aspx/ascx文件中那样编译。您应该有一个面板或其他占位符,将新控件添加到占位符的控件集合中。这应该在Page_Init中完成,以便e控件已正确注册以进行回发。@rossisdead这些不是服务器控件,它们是HTML控件……您所显示的代码似乎与该问题毫不相关。
    if (page.ispostback)
    {
         string parameter = Request["__EVENTARGUMENT"];
         string[] allParams = parameter.Split('|');
         string val = Request.Params.Get("__EVENTTARGET");
    }