从动态创建的文本字段回发一个值 [ASP.net]

Posted

技术标签:

【中文标题】从动态创建的文本字段回发一个值 [ASP.net]【英文标题】:Post-back a value from text field that dynamically created [ASP.net] 【发布时间】:2015-09-08 22:52:50 【问题描述】:

在我的网页中,我有一个按钮,在按钮旁边有一个 input type='text' 我动态创建的文本框(所以我不能使用 runat="server"

我不想将用户在输入框中输入的内容回传到服务器。

这就是我所做的:

<asp:LinkButton id="xx" OnClick="xx" runat="server">

还有一个按钮

<button onclick="some_js_function()">

以及动态生成的文本框

还有一个

<aspx:HiddenField>

会发生这种情况: aspx 按钮是隐藏的,当用户单击另一个按钮时,会调用 js 函数并将值从 javascript 文本框复制到隐藏字段框,然后单击 (jQuery .click() ) aspx 隐藏按钮。

在 Google Chrome 控制台中,我可以看到回发正在发生,并且值已成功复制,但从未调用隐藏的 aspx 按钮中的 onclick 的服务器端函数。

这可能不是最好的方法..

如果有人有更好的想法或解决此问题的方法,我会很高兴:)

【问题讨论】:

取消隐藏按钮然后单击它,事件是否被触发?我怀疑。您可以添加 aspx 和 cs 代码以便有人可以调试它 它确实会触发,我在另一个页面中使用它,但现在它不起作用。但我不喜欢这种方法.. 必须有更好的方法来做到这一点。而且我没有取消隐藏 aspx 按钮,我只是使用 $(" 【参考方案1】:

form 标记中的每个元素,如果手动或动态添加,都将被发送回服务器。

手动添加的输入例如:&lt;asp:TextBox runat="server" id="txtBox"&gt;&lt;/asp:TextBox&gt; 可以直接调用到您的后端使用:

设置文本:

this.txtBox.Text = "Some Text";

获取文本:

string valueBox = this.txtBox.Text;

动态添加的控件需要同时分配idname 属性。示例:

&lt;input type="text" id="txtBox" name="txtBox" /&gt;

然后在您的后端,您可以使用Request.Form 获取文本框的值:

string valueBox = Request.Form["txtBox"].ToString();

【讨论】:

但我没有发布表格,我回发了.. 我将在 .cs 文件中的哪里使用 Request.Form ?我知道我可以访问 Request.Form 但我在表单中间有一个按钮,可以从数据库中查询某些内容,然后更改表单的另一部分。

以上是关于从动态创建的文本字段回发一个值 [ASP.net]的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET 代码中通过 javascript 重置 Jquery 验证后停止回发

asp.net jquery 用文本框添加行(克隆行)并动态下拉

文本框文本在回发后消失

回发时的 ASP.Net 复选框值错误?

在引导模式主体中动态添加的 asp.net 按钮/链接按钮 web 控件不会回发

ASP.NET 回发会丢失 URL 中的哈希值