javascript创建的控件值未发布到服务器
在我的Html页面中,我使用javascript在循环中创建了几个文本框 来自内部循环的代码段:javascript创建的控件值未发布到服务器,javascript,asp.net,postback,Javascript,Asp.net,Postback,在我的Html页面中,我使用javascript在循环中创建了几个文本框 来自内部循环的代码段: var row = myTable.tBodies[0].insertRow(rowCount); var cell1 = row.insertCell(0); cell1.style.width = '40%'; var element1 = document.createElement("input"); element1.type = "text"; element1.className =
var row = myTable.tBodies[0].insertRow(rowCount);
var cell1 = row.insertCell(0);
cell1.style.width = '40%';
var element1 = document.createElement("input");
element1.type = "text";
element1.className = 'textSub';
element1.id = 'txtOndNr' + rowNr;
cell1.appendChild(element1);
当我按下提交按钮时,我似乎无法在服务器端访问它们的值。我知道它们不是服务器控件等,但我希望通过request.form(“id”)访问它们。
此外,当我检查firebug时,这些值不在post值中(控件位于表单标记内,这不是问题所在)
有人知道我做错了什么吗
额外信息:ASP.NET 1.1,脚本位于ASCXASP.NET将控件状态保持为仅由ASP.NET创建的视图状态。您需要使用
隐藏字段来存储新创建控件的状态
,然后在服务器上访问该隐藏字段以获取状态/数据
html格式的
<input type="hidden" runat="server" id="hdnFornewlyCreated" />
Asp.net仅将Asp.net创建的控件状态保持在视图状态。您需要使用
隐藏字段来存储新创建控件的状态
,然后在服务器上访问该隐藏字段以获取状态/数据
html格式的
<input type="hidden" runat="server" id="hdnFornewlyCreated" />
我刚刚发现,用来发送表单值的不是ID,而是名称。如果我更改
element1.id='txtOndNr'+rowNr
toelement1.name='txtOndNr'+rowNr代码>我可以通过Request.form(“txtOndNr0”)访问这些值
在检查firebug http post请求时看起来是这样的
txtOndNr0 qsdf
txtOndNr1
txtOndNr2 qsdf
在我看来,这似乎是一个稍微干净的解决方案。我刚刚发现,用于发送表单值的不是ID,而是名称。如果我更改element1.id='txtOndNr'+rowNr
toelement1.name='txtOndNr'+rowNr代码>我可以通过Request.form(“txtOndNr0”)访问这些值
在检查firebug http post请求时看起来是这样的
txtOndNr0 qsdf
txtOndNr1
txtOndNr2 qsdf
对我来说,这似乎是一个稍微干净的解决方案。嗯,我希望不必走这条路,但这似乎是唯一可能的办法。我的问题是,用户可以在该页面上创建任意数量的文本框。因此,在回发之前,我必须将所有txtbox值存储在1个hdn中(因为我无法预测将有多少txtbox,我无法提供服务器端创建的hdn的正确数量)。和字符串操作服务器端hdn的结果。您必须存储在单个隐藏字段中创建的所有新文本框的所有数据。你所要做的就是格式化你的数据,这样就可以在服务器端对客户端创建的每个元素进行解释和提取。嗯,我希望不必走这条路,但这似乎是唯一可能的方法。我的问题是,用户可以在该页面上创建任意数量的文本框。因此,在回发之前,我必须将所有txtbox值存储在1个hdn中(因为我无法预测将有多少txtbox,我无法提供服务器端创建的hdn的正确数量)。和字符串操作服务器端hdn的结果。您必须存储在单个隐藏字段中创建的所有新文本框的所有数据。您所要做的就是以这样一种方式格式化数据,即可以在服务器端对在客户端创建的每个元素进行解释和提取。