asp.net 页面的textbox 设置为多行文本框之后后台无法获取值

九幽之君 2014-11-19 11:24:39
如题:我用的服务器控件textbox 将类型设置为多行文本框之后居然在后台无法获取值,但是后台设置的值,可以在后台获取到,在页面上输入的值却获取不到。
<asp:TextBox ID="TxtBoxExecuteResults" runat="server" Height="86px" TextMode="MultiLine" Width="486px" MaxLength="1000"></asp:TextBox>

this.TxtBoxExecuteResults.Text = "1234"; //可以赋值给它,
string text = this.TxtBoxExecuteResults.Text; //可以获取到1234

但是在页面输入的值却怎么都获取不到。

请大神解答啊~!
...全文
540 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww_2446135903 2014-11-20
  • 打赏
  • 举报
回复
asp.net页面后台获取textbox设置的多行文本框的值示例 //输入框页面显示获取的数据库数据设置 <table style="width: 542px" cellspacing="0" class="0"> <tr> <td style="text-align: right" class="style1"> <span style="font-size: 9pt">标题:</span></td> <td colspan="2" style="width: 368px; text-align: left"> <asp:TextBox ID="txtSubject" runat="server" Font-Size="9pt" Width="290px"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtSubject" ErrorMessage="标题不能为空">*</asp:RequiredFieldValidator></td> </tr> <tr> <td style="text-align: right" class="style1"> <span style="font-size: 9pt">作者:</span></td> <td colspan="2" style="width: 368px; text-align: left"> <asp:TextBox ID="TextBox2" runat="server" Font-Size="9pt" Width="287px" ReadOnly="True"></asp:TextBox></td> </tr> <tr> <td style="text-align: right; height: 24px;"> 类别:</td> <td colspan="2" style="width: 368px; text-align: left; height: 24px;"> <asp:DropDownList ID="DropDownList1" runat="server" Font-Names="9pt"> </asp:DropDownList></td> </tr> <tr> <td style="text-align: right" class="style3" align="left"> 摘要:</td> <td colspan="2" style="width: 368px; height: 14px; text-align: left"> <asp:TextBox ID="TextBox1" runat="server" Height="114px" TextMode="MultiLine" Width="495px"></asp:TextBox></td> </tr> <tr> <td class="style2"> </td> <td colspan="2" style="width: 368px; height: 24px;">  <asp:Button ID="btnAdd" CssClass="ButtonCss" runat="server" Font-Size="9pt" OnClick="btnAdd_Click" Text="添加" Width="44px" /> <asp:Button ID="Button1" CssClass="ButtonCss" runat="server" Font-Size="9pt" OnClick="Button1_Click" Text="重置" Width="41px" /> <asp:Button ID="btnCancle" CssClass="ButtonCss" runat="server" Font-Size="9pt" Text="返回" OnClick="btnCancle_Click" CausesValidation="False" Width="47px" /></td> </tr> </table>//codego.net/tags/15/1/ //cs页面绑定数据设置 SqlData mydata = new SqlData(); int cbox; string ID; protected void Page_Load(object sender, EventArgs e) { if (Session["UserName"] == null) { Response.Redirect("~/UserIndex.aspx"); } string sql = "select * from tb_User where UserName='" + Session["UserName"] + "'"; DataSet mydataset = mydata.GetDataSet(sql, "tb_User"); DataRowView rowview = mydataset.Tables["tb_User"].DefaultView[0]; ID = rowview["UserID"].ToString(); this.TextBox2.Text = Session["UserName"].ToString(); string sqlstr = "select * from ST_Class"; SqlConnection mycon = new SqlConnection(ConfigurationManager.AppSettings["conStr"]); SqlCommand mycom = new SqlCommand(sqlstr, mycon); mycon.Open(); SqlDataReader dr = mycom.ExecuteReader(); //判断是否有数据 while (dr.Read()) { DropDownList1.Items.Add(new ListItem(dr["ST_c_name"].ToString(),dr["ST_c_id"].ToString())); } mycon.Close(); } //重新插入数据设置 protected void btnAdd_Click(object sender, EventArgs e) { string ID; string sqlstr = "select * from tb_User where UserName='" + Session["UserName"] + "'"; DataSet mydataset = mydata.GetDataSet(sqlstr, "tb_User"); DataRowView rowview = mydataset.Tables["tb_User"].DefaultView[0]; ID = rowview["UserID"].ToString(); //创建插入新用户信息的Sql语句 string com = "Insert into ST_news(ST_n_title,ST_n_author,ST_n_key,ST_n_content,ST_n_iscmd,ST_c_id,UserID) values('" + this.txtSubject.Text + "','" + this.Session["UserName"].ToString() + "','" + this.TextBox1.Text + "','" + this.article_context.Text.ToString() + "','" + cbox + "','" + this.DropDownList1.SelectedValue + "','" + ID + "')"; //调用公共类中的ExceSQL方法,返回一个布尔值 bool add =mydata.ExceSQL(com); if (add) { Response.Write("<script language=javascript>alert('用户添加成功!');location='ArticleManage.aspx'</script>"); } else { Response.Write("<script language=javascript>alert('用户添加失败!');location='javascript:history.go(-1)'</script>"); } }
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
引用 2 楼 xiaozhihui5535 的回复:
不是设置多行文本的原因,可能是你页面设计或代码的原因 你可以先独自把多行文本拿出来取值,然后再把页面上的一部分一部分的加上去,就知道哪里问题了
我在另外的页面测试是没有问题的,但是在我写的那个页面就是鬼大
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
你把获取值的代码写在哪里了??
我写已在一个按钮的添加事件里面,按钮时一个服务器Button
於黾 2014-11-19
  • 打赏
  • 举报
回复
你把获取值的代码写在哪里了??
_萧萧 2014-11-19
  • 打赏
  • 举报
回复
不是设置多行文本的原因,可能是你页面设计或代码的原因 你可以先独自把多行文本拿出来取值,然后再把页面上的一部分一部分的加上去,就知道哪里问题了
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
自己先顶一下~!
_萧萧 2014-11-19
  • 打赏
  • 举报
回复

 if (!IsPostBack)
        {
            这里把数据库值取出来填充进去
        }
我了个去,搞了半天问题在这,我也是醉了
ichengzhen 2014-11-19
  • 打赏
  • 举报
回复
我觉得可能是你把赋值语句放的位置不对。学习学习~
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
好了,找到问题了。因为我做的是一个修改功能,也就是我先去数据库把值取出来填充进去,然后再做修改后然后取到修改的值进行提交修改,然后就一直取不到textbox的值。 主要是因为我在后台赋过一次值,只要我把它注释起来就没问题。 也提醒一下各位,服务器控件textbox , TextMode="MultiLine" 如果在后台赋值过后就取不到页面输入的值了。 呵呵,现在我的问题又变了,不能赋值怎么做修改啊,
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
我真怀疑是VS的原因了,我在textbox旁边在放一个新textbox,就叫textbox1然后取值可以取到,一样的代码,然后我把之前的删除掉,用新加的textbox1来取值,发现又取不到。
於黾 2014-11-19
  • 打赏
  • 举报
回复
断点调试,看点击button的时候后台事件到底走没走 然后看取到的值是什么
_萧萧 2014-11-19
  • 打赏
  • 举报
回复
后台怎么取值的,前台也看不错啥
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
代码真的没有什么特别的,就用了一个模板页,然后子内容页的内容就是这样,真不知道这是个什么情况,只是用一个textbox而已
九幽之君 2014-11-19
  • 打赏
  • 举报
回复
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> <script src="Scripts/LoadLeftNavigationJScript.js" type="text/javascript"></script> <link href="Styles/SystemManger.css" rel="stylesheet" type="text/css" /> <script type ="text/javascript"> $(function () { TaskManager(); //加载左侧导航 }); </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <div class ="DealWithTaskMain"> <div class ="DealWithTaskMainHeader"> <asp:Label ID="LblTaskTitle" runat="server" Text="任务标题"></asp:Label> </div> <div class ="DealWithTaskMainContent"> <table> <tr> <td style =" width:180px;"><label>任务编号:</label></td> <td colspan ="3"><asp:Label ID="LblTaskId" runat="server" Text="任务编号"></asp:Label></td> </tr> <tr> <td><label>任务标题:</label></td> <td colspan ="3"><asp:Label ID="LblTaskTitleChild" runat="server" Text="任务标题"></asp:Label></td> </tr> <tr> <td><label>任务内容:</label></td> <td colspan ="3"><asp:Label ID="LblTaskContent" runat="server" Text="任务内容"></asp:Label></td> </tr> <tr> <td><label>任务类型:</label></td> <td><asp:Label ID="LblTaskType" runat="server" Text=""></asp:Label></td> <td width ="120px" style =" text-align:right;"><label>任务状态:</label></td> <td> <asp:DropDownList ID="DDLTaskState" runat="server"> <asp:ListItem Selected="True">已发布</asp:ListItem> <asp:ListItem>进行中</asp:ListItem> <asp:ListItem>已完成</asp:ListItem> <asp:ListItem>过期未完成</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td><label>任务发布时间:</label></td> <td><asp:Label ID="LblSubmitTime" runat="server" Text="任务发布时间"></asp:Label></td> <td style =" text-align:right;"><label>任务最迟完成时间:</label></td> <td><asp:Label ID="LblFinalTime" runat="server" Text="任务最迟完成时间"></asp:Label></td> </tr> <tr> <td style =" text-align:right;"><label>任务执行结果:</label></td> <td colspan ="3"> <asp:TextBox ID="TxtBoxExecuteResults" runat="server" Height="86px" TextMode="MultiLine" Width="486px" MaxLength="1000"></asp:TextBox> </td> </tr> <tr> <td><label>执行说明:</label></td> <td colspan ="3"> <asp:TextBox ID="TxtBoxExecuteExplain" runat="server" Height="86px" TextMode="MultiLine" Width="486px" MaxLength="1000" Rows="4" Columns="80"></asp:TextBox> </td> </tr> <tr> <td><label>发布人:</label></td> <td><asp:Label ID="LblExecutePeople" runat="server" Text=""></asp:Label></td> <td style =" text-align:right;"><label>执行人:</label></td> <td><asp:Label ID="LblAssignPeople" runat="server" Text=""></asp:Label></td> </tr> <tr> <td><label>注解:</label></td> <td colspan ="3"> <asp:TextBox ID="TxtBoxExplain" runat="server" Height="86px" TextMode="MultiLine" Width="486px" MaxLength="1000"></asp:TextBox> </td> </tr> <tr> <td colspan ="4" style = " text-align:center; padding-top:16px;"> <input type ="reset" value ="重置" /> <asp:Button ID="BtnUpdateTask" runat="server" Text="提交" onclick="BtnUpdateTask_Click" /> <br /> <asp:Label ID="LblSubmitPrompt" runat="server" Text=""></asp:Label> </td> </tr> </table> </div> </div> </asp:Content>
zhrongr 2014-11-19
  • 打赏
  • 举报
回复
你能否把代码全部贴出来看下。因为你提供的这几句是没有问题的。
_萧萧 2014-11-19
  • 打赏
  • 举报
回复
这你要自己测才能找到原因啊,我们也只能猜一猜而已,要么就把代码全帖上来,当然代码不是太长才帖
於黾 2014-11-19
  • 打赏
  • 举报
回复
页面里是否使用了AJAX,如果使用了AJAX,就不要用asp:button了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧