[英]C# unable to find content of ASP.net Textboxes
好的,所以我尝试创建一种注册向导,因此asp中有不同的部分,例如以下部分:
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a href="#addwizard" data-parent="#accordion-demo" data-toggle="collapse">
Term Time Address
</a>
</h4>
</div>
<div id="termaddy" class="panel-collapse collapse in" runat="server">
<div class="panel-body">
<form id="form-termaddy" >
<div class="main_input_box">
<div class="col-lg-6">
<div class="form-group">
<asp:TextBox ID="txttermhousenum" runat="server" placeholder="House Number" class="form-control" textmode="SingleLine"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator28" controltovalidate="housenum" errormessage="Required Field" display="Dynamic"/>
</div>
<div class="form-group">
<div class="main_input_box">
<asp:TextBox ID="txtxtermstreet" runat="server" placeholder="Street" class="form-control" textmode="SingleLine"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator29" controltovalidate="street" errormessage="Required Field" display="Dynamic"/>
</div>
</div>
<div class="form-group">
<div class="main_input_box">
<asp:TextBox ID="txtxtermpost" runat="server" placeholder="Postcode" class="form-control" textmode="SingleLine"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" id="RequiredFieldValidator31" controltovalidate="postcode" errormessage="Required Field" display="Dynamic"/>
</div>
</div>
</div>
</div>
</form>
</div> <!--/.panel-body -->
</div> <!-- /#addwizard -->
</div> <!-- /.panel.panel-default -->
因此,无论何时用户填写表格并点击保存。 C#获取文本框的详细信息并更新数据库:
//term time address info
string txttermhouse = ((TextBox)termaddy.FindControl("txttermhousenum")).Text;
string txttermstr = ((TextBox)termaddy.FindControl("txtxtermstreet")).Text;
string txttermpostcode = ((TextBox)termaddy.FindControl("txtxtermpost")).Text;
termaddress(txttermhouse, txttermstr, txttermpostcode);
问题是,当代码通过此部分时,它会将每个文本框视为空白,并将它们保存为db和空字符串。 我也尝试过直接将文本框引用到方法中,即:
termaddress(txttermhousenum.Text, txtxtermstreet.Text, txtxtermpost.Text);
但是似乎没有办法。 非常感谢您提供有关如何获取文本框值的任何帮助,对此问题感到非常困惑。
如果使用母版页,请确保没有两个<form runat="server">
标记。 我曾经遇到过这个问题,这是其结果。
直接使用Textbox
,无需使用FindControl:
尝试按以下方式访问它们
string txttermhouse = txttermhousenum.Text;
string txttermstr = txtxtermstreet.Text;
string txttermpostcode = txtxtermpost.Text;
您可以按以下方式传递给您的方法:
termaddress(txttermhouse , txttermstr , txttermpostcode );
为什么使用在服务器上运行的div
找到控件? 如果您仅使用runat="server"
来查找控件,则建议将其从div
删除。 这会使您的响应变慢。
您可以按如下方式简单地访问它们:
string txttermhouse = txttermhousenum.Text;
string txttermstr = txtxtermstreet.Text;
string txttermpostcode = txtxtermpost.Text;
您确实不需要查找控件。 您可以直接访问它们。 当它在网格列模板中或在转发器等中重复时,您需要找到控件,然后需要找到控件,否则可以直接访问它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.