我有一个aspx页面并添加了一个文字控件:
<asp:Literal runat="server" ID="ControlLiteral"></asp:Literal>
然后,在代码隐藏中,我使用for句子来大规模创建控件,这个想法是这样的:
ControlLiteral.Text = @"<input id=""txtMaterial1"" type=""text"" value=""escribe un valor"" disabled=""disabled"" onclick=""somefunction(this)"" style=""width:250px;"" />
然后我想在代码隐藏中的提交按钮之后获取值,但问题是我无法找到它们并且我开始认为代码隐藏不知道这些控件,即使我检查了HTML源代码,一切都在那里......任何想法?
我尝试了以下内容:
添加了runat =&#34;服务器&#34;在创建控件的字符串中,当然,它不起作用,它只是添加了文本runat =&#34; server&#34;在html中
Request.Form [&#34; txtMaterial&#34;]或请求[&#34; txtMaterial&#34;]找不到任何内容
Page.Controls.Find(&#34; txtMaterial&#34;)返回null
当我这样做时,this.from1.Controls.Count它只检索11个控件,而不是我在for语句中添加的210个控件,如果像这样检索它们。来自.Controls [2],那些由asp.net引擎创建的不相关的html标签
Page.Controls.Count仅检索5个控件
那些控件在一张桌子里面,不知道它有什么可做的,所以,你有什么想法吗,自从我上次使用asp.net以来已经有一段时间了但请记住这是可能的,请让我知道你的想法,
答案 0 :(得分:-1)
尝试使用submit
来调用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);
}
codebehind page_load:
if (page.ispostback)
{
string parameter = Request["__EVENTARGUMENT"];
string[] allParams = parameter.Split('|');
string val = Request.Params.Get("__EVENTTARGET");
}