奇怪的ASP.. NET问题,试图找到包含在文本框中的值

Strange ASP.NET issue when trying to find value contained in a TextBox

本文关键字:包含 文本 ASP NET 问题      更新时间:2023-09-26

我有一个表单与一些asp: textbox。用户可以在这些文本框中编辑文本,当按下SAVE按钮时,这些新值将被写入数据库。

我总共有3个文本框,前2个文本框的新值传递给后面的代码没有任何问题。然而,第三个文本框的旧内容被传递到服务器,而不是用户编辑的数据。

有问题的文本框的标记如下所示:

   <asp:TextBox ID="descriptionBox" ReadOnly="true" style" runat="server" TextMode="MultiLine" Text='<%# Eval("Description") %>'></asp:TextBox>

下面是c#代码,它试图在用户编辑文本框后获取文本框的内容。请注意,这些文本框放置在Repeater中:

string description = ((TextBox)e.Item.FindControl("descriptionBox")).Text;

谁能提出问题是什么?其他文本框使用相同的标记和代码,它们工作得很好。

请参阅MSDN文档-是ReadOnly属性导致了这个问题:

ReadOnly属性设置为的TextBox控件的Text值当回发发生时,将True发送给服务器,但服务器不会未处理只读文本框。

另一种方法是在客户端执行:

descriptionBox.Attributes["readonly"] = "readonly"

也许这是因为你在TextBox上有以下属性:ReadOnly="True"!

编辑:

太迟了,感谢Pointy的评论。:)