2013-07-15 67 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屬性,而不是像這樣。