2013-07-15 31 views
0

我在CTS上使用框架4.0在VSTS 2012上工作。代码丢失后的代码

我的默认设置启用=假:

<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> 

然后我将它设置启用=真:

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 =空

我丢回传后的值。那是因为默认enable = false?

回答

2

我在回发后丢失了数值,是因为默认启用了 = false?

最有可能是这个原因。 enable=false的问题在于它将html元素中的属性设置为disabled,并且没有在请求中提交任何具有禁用状态的元素。

我的解决方法是使用ReadOnly属性而不是禁用,也许使用特殊样式来给出禁用元素的外观,例如浅灰色背景。

0

是的,ASP不保留在回发期间禁用的文本框的值。另外

ASPxTextBox_CP_destAttributes.Add("readonly", "readonly"); 

,添加一个隐藏字段,并用它来存储相同的值:你应该使用ReadOnly属性,而不是像这样。