C# 禁用的asp.net文本框在启用和更改文本后返回旧值

C# 禁用的asp.net文本框在启用和更改文本后返回旧值,c#,asp.net,ajax,C#,Asp.net,Ajax,我的问题是我有一个asp文本框,它有一个值(text),但被禁用(Enabled=“false”) 单击(编辑)按钮后,它将被启用(enabled=“true”),因此我可以更改文本 -->更改文本并单击(保存)按钮后,它会在更改之前获取旧值(文本) 编辑并保存它,而不是新的 只读属性也会出现此问题 我被这件事难住了。。所以任何帮助我都会心存感激 <telerik:RadAjaxPanel ID="AjaxPanel1" runat="server" LoadingPanelID=

我的问题是我有一个asp文本框,它有一个值(text),但被禁用(Enabled=“false”)

单击(编辑)按钮后,它将被启用(enabled=“true”),因此我可以更改文本

-->更改文本并单击(保存)按钮后,它会在更改之前获取旧值(文本) 编辑并保存它,而不是新的

只读属性也会出现此问题

我被这件事难住了。。所以任何帮助我都会心存感激

    <telerik:RadAjaxPanel ID="AjaxPanel1" runat="server" LoadingPanelID="LoadingPanelTelerik">
<tr>
  <td align="right" valign="top">
      <asp:TextBox runat="server" ID="Email" CssClass="InputForm" /> 
  </td>
  </tr>
<tr>
  <td align="center" colspan="2" valign="bottom">
      <asp:Button ID="UpdateButton" runat="server" Text="تـعــديـل" OnClick="Enable_Info" Font-Size="Large" />
      <asp:Button ID="CancelButton" runat="server" Text="إلـغـاء" OnClick="Cancel_Info" Font-Size="Large" Visible="false"/> 
  </td>        
</tr>
</telerik:RadAjaxPanel>

好的,问题是您正在将每次加载页面时运行的页面加载中的Email.Text设置为包含所有回发。页面加载在Enable_Info方法之前触发,因此每次都会将文本更改回原处。您只需修改页面加载代码,使其仅在第一次加载页面时运行,而不在回发时运行:

protected void Page_Load(object sender, EventArgs e)
{
  if(!Page.IsPostBack)
  {
    Email.Text = myDataTable.Rows[0][2].ToString();
    Email.DataBind();

    Email.Enabled = false;
  }
}

你能把相关的标记和代码粘贴到后面吗?顺便说一句,不要使用
throw-ex。它把堆栈跟踪搞砸了。对于
SqlConnection
,您应该只使用
using
块。。。第一次知道非常感谢。。你救了我
protected void Page_Load(object sender, EventArgs e)
{
  if(!Page.IsPostBack)
  {
    Email.Text = myDataTable.Rows[0][2].ToString();
    Email.DataBind();

    Email.Enabled = false;
  }
}