从动态创建的文本字段回发一个值 [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
标记中的每个元素,如果手动或动态添加,都将被发送回服务器。
手动添加的输入例如:<asp:TextBox runat="server" id="txtBox"></asp:TextBox>
可以直接调用到您的后端使用:
设置文本:
this.txtBox.Text = "Some Text";
获取文本:
string valueBox = this.txtBox.Text;
动态添加的控件需要同时分配id
和name
属性。示例:
<input type="text" id="txtBox" name="txtBox" />
然后在您的后端,您可以使用Request.Form 获取文本框的值:
string valueBox = Request.Form["txtBox"].ToString();
【讨论】:
但我没有发布表格,我回发了.. 我将在 .cs 文件中的哪里使用 Request.Form ?我知道我可以访问 Request.Form 但我在表单中间有一个按钮,可以从数据库中查询某些内容,然后更改表单的另一部分。以上是关于从动态创建的文本字段回发一个值 [ASP.net]的主要内容,如果未能解决你的问题,请参考以下文章
在 ASP.NET 代码中通过 javascript 重置 Jquery 验证后停止回发
asp.net jquery 用文本框添加行(克隆行)并动态下拉