C# Can';t访问在文本中的代码隐藏中创建的HTML输入控件
我有一个aspx页面,并添加了文字控件: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
<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源代码,所有内容都在那里,所以…有什么想法吗
我尝试了以下方法:
那些控件在一个表中,不知道它有什么事要做,所以,你有什么想法吗,自从上次我使用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");
}