asp.net c#命令按钮在单击时不运行命令代码

时间:2012-03-26 22:15:22

标签: c# asp.net button command

我有一个有3页的c#asp.net applcation。第1页是数据输入。第2页是名称搜索。第3页是帐户信息摘要。

第一页包含2个asp:文本框和2个按钮。第一个文本框允许用户输入帐号。第二个文本框允许用户输入名称“按名称查找帐号”搜索。按钮1通过查询字符串将文本框号1中的帐号提交到帐户摘要页面。按钮2提交名称以查找以通过查询字符串命名搜索页面。

在名称搜索页面上,显示帐号和名称列表,帐号为href链接返回数据条目。帐号通过名称搜索页面链接中的查询字符串传回数据输入页面。

我的问题就是这样发生的。当我从名称搜索页面或帐户摘要页面返回数据输入页面时...我解析查询字符串以使用帐号预先填充文本框#1的值。

如果用户随后更改预先填充的帐号并点击按钮编号1.帐户摘要页面上的数据用于预先填充的帐号,而不是用户输入的新帐号。

命令按钮的代码设置文本框#1的值,并将其作为click事件的一部分粘贴在查询字符串中;但是,查询字符串保留了预先填充的值。

            case "summary":

            sAPN = txtAPN.Text.ToString();  (<--- Textbox 1) this always comes out as the    prepopulated value.
            sfxbal = fxbal.CheckAPN(sAPN);  (<---- Validation function)
            if (sfxbal.Length == 14)        
            {
                sAPN = sfxbal;
                sfxbal = "";
            }

            if (sfxbal == "")
                Response.Redirect("CreateAccount_Summary.aspx?APN=" + sAPN);
            else
                Response.Redirect("GetAPN.aspx?APNError=" + sfxbal);
            break;

我尝试过使用“使用提交”行为。我已经尝试使用javascript“onblur”,虽然我可以在警告中显示txtAPN(文本框1)的值,新用户输入的值而不是预先填充的值,但数据始终是预先填充的值。

也没有验证。

如果我在查询字符串中没有返回任何内容。新用户输入的帐号是valildated,摘要页面上的数据是新帐号。

它绝对像我的命令代码被旁路。为什么会这样?

1 个答案:

答案 0 :(得分:1)

我强烈感觉每次加载页面时都会设置Text属性。

您需要设置一次Text属性(仅在进行GET时):

protected void Page_Load(object sender, EventArgs e) 
{
    if (!Page.IsPostBack)
    {
       txtAPN.Text = ....;
    }
}

否则每次提交表单时,文本框都会从查询字符串中获取值(它会覆盖用户给出的值)。