ASP.NETでTextBoxコントロール設定ReadOnly="true"バックグラウンドで値が取れない

3287 ワード

TextBoxにReadOnly="true"が設定されている場合、フロントでコントロールに値を追加した場合、バックグラウンドは取り出せず、値は"空"になります.
 
方法1:ReadOnly属性を設定せず、onfocus=this.blur()は、次のようにシミュレーションされます.
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>

 
方法2:ReadOnlyプロパティを設定した後、Requestで値を取ります.次のようにします.
フロントコード:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>

バックグラウンドコード:
string Text = Request.Form["TextBox1"].Trim();

 
方法3:Page_Load()はテキストボックスの読み取り専用属性を設定しており、フロントでは設定されていません.次のように正常に読めます.
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TextBox1.Attributes.Add(
"readonly","true");
}
}