在我的网页上我有一个按钮,按钮旁边有一个我动态创建的输入类型='文本'文本框(所以我不能使用runat =“server”)
我不想将用户在输入框中输入的内容发回服务器。
这就是我所做的:
<asp:LinkButton id="xx" OnClick="xx" runat="server">
另一个按钮
<button onclick="some_js_function()">
动态生成的文本框
另一个
<aspx:HiddenField>
这是发生的事情: 隐藏了aspx按钮,当用户单击其他按钮时,调用js函数并从javascript文本框中复制隐藏字段框中的值,然后单击(jQuery .click())aspx隐藏按钮。
在谷歌Chrome控制台中,我可以看到回发正在发生,并且成功复制了值,但是从未调用隐藏在aspx按钮中的onclick的服务器端函数。
这可能不是最好的方法..
如果有人有更好的想法或解决方法,我会很高兴:)
答案 0 :(得分:0)
form
标记中的每个元素,如果手动或动态添加,都会回发到服务器。
手动添加输入,例如:<asp:TextBox runat="server" id="txtBox"></asp:TextBox>
可以使用以下方法直接调用到后端:
SET Text:
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();