我正在尝试使用隐藏的代码从提供给我的 HTML 中读取文本。在研究了这个主题之后,我发现几乎所有的实例都涉及文本框的 Web 窗体控件(asp:),但我得到的 HTML 没有,而是:
<p>
<label>Address</label>
<textarea class="w3-input w3-border" name="addr" cols="30" rows="4"></textarea>
</p>
<div class="w3-half w3-container">
<p>
<label>Phone:</label>
<input type="text" class="w3-input"/>
</div>
<div class="w3-half w3-container">
<label style="padding-left:10px;">Email:</label>
<input type="text" class="w3-input"/>
</div>
</p>
我仍然可以从这些框中读取用户提供的文本,还是需要更改 HTML?
我的一些不成功的代码隐藏尝试提取提供的地址:
string address = ((textarea)Address.FindControl("addr")).Text;
string address = ((TextBox)Address.FindControl("addr")).Text;
更新:使用提供的解决方案中描述的服务器控件,我收到一条错误消息,指出“一个页面只能有一个服务器端表单标记”。
这源于以下标记:
<form runat="server">
<asp:textbox id="addr" runat="server" textmode="multiline" />
</form>
随后是:
<form runat="server">
<asp:Button ID="Ship" runat="server" Text="Ship" OnClick="Ship_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
<asp:Button ID="Rate" runat="server" Text="Rate" OnClick="Rate_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
</form>
textarea 位于与按钮不同的部分,我不清楚如何在没有表单标签或不让它们共享相同标签的情况下使两者都起作用。谢谢
如果您希望访问隐藏代码中的值,则需要使用服务器控件。使用 ASP TextBox 并将 TextMode 设置为 MultiLine:
<asp:TextBox ID="textarea1" runat="server" TextMode="MultiLine" />
然后在后面的代码中:
string addr = textarea1.Text;
更新以在同一页面上演示多个表单:
<form ID="form1" runat="server">
<asp:Button ID="Ship" runat="server" Text="Ship" OnClick="Ship_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
<asp:Button ID="Rate" runat="server" Text="Rate" OnClick="Rate_Click" style="padding: 10px; margin-bottom: 10px;" class="w3-round w3-blue" />
</form>
<form id="form2" action="WebForm1.aspx" method="post">
<asp:TextBox ID="textarea1" runat="server" TextMode="MultiLine" />
</form>
从这里,您可以使用任一方法检索来自 form1 或 form2 的帖子的代码隐藏中的 textarea1 值...
表格1:
string addr = textarea1.Text;
形式2:
string addr = Request["textarea1"].ToString();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句