我在VSTS 2012上使用C#上的框架4.0。
我默认设置为enable = false:
<dx:ASPxTextBox ID="ASPxTextBox_CP_dest" runat="server" Width="60px" TabIndex="30" ClientInstanceName="ASPxTextBox_CP_dest" Enable="false">
<ValidationSettings ErrorDisplayMode="ImageWithTooltip" SetFocusOnError="true">
<RequiredField IsRequired="true" ErrorText="Champ Obligatoire" />
</ValidationSettings>
</dx:ASPxTextBox>
但是当用户点击复选框时:
<dx:ASPxCheckBox
ID="ASPxCheckBox_NewDesti"
runat="server"
ClientInstanceName="ASPxCheckBox_NewDesti"
OnCheckedChanged="Desti_CheckedChanged"
Text="Nouveau destinataire" ForeColor="Green" AutoPostBack="false"
>
</dx:ASPxCheckBox>
然后我将它设置为enable = true:
protected void Desti_CheckedChanged(object sender, EventArgs e)
{
if (ASPxCheckBox_NewDesti.Checked)
{
ASPxTextBox_CP_dest.Enabled = true;
ASPxTextBox_CP_dest.BackColor = System.Drawing.Color.White;
.....
}
else
{
ASPxTextBox_CP_dest.Enabled = false;
ASPxTextBox_CP_dest.BackColor = System.Drawing.Color.LightGray;
}
但是当我点击“保存”按钮时:
protected void ASPxButton_save_Click(object sender, EventArgs e)
{
try
{
string FA_Choisi = ASPxTextBox_CP_dest.Text.Substring(0, 2);
我得到了值ASPxTextBox_CP_dest.Text = empty
我在回发后失去了价值。这是因为默认情况下是enable = false?
答案 0 :(得分:2)
我在回发后丢失了值,是因为默认启用 = false?
最有可能的原因。 enable=false
的问题在于它将html元素中的属性设置为disabled
,并且在请求中未提交任何具有禁用状态的元素。
我的解决方法是使用ReadOnly
属性而不是禁用,并且可能使用特殊样式来显示禁用元素的外观,例如浅灰色背景。
答案 1 :(得分:0)
是的,ASP不会在回发中保留已禁用文本框的值。您应该使用ReadOnly
属性,如下所示:
ASPxTextBox_CP_destAttributes.Add("readonly", "readonly");
或者,添加隐藏字段并使用它来存储相同的值。