asp.net c#命令按钮没有';t单击时运行命令代码
本文关键字:命令 单击 运行 代码 net 按钮 asp | 更新日期: 2023-09-27 18:29:15
我有一个c#asp.net应用程序,它有3个页面。第1页是数据输入。第2页是名称搜索。第3页是账户信息摘要。
第一页包含2个asp:textbox和2个按钮。第一个文本框允许用户输入帐号。第二个文本框允许用户输入名称以"按名称查找账号"搜索。按钮1通过querystring将1号文本框中的账号提交到账户摘要页面。按钮2通过querystring将要查找的名称提交到名称搜索页面。
在姓名搜索页面上,会显示帐号和姓名列表,帐号是返回数据条目的href链接。账号通过名称搜索页面上链接中的查询字符串传输回数据输入页面。
我的问题就是这样发生的。当我从姓名搜索页面或帐户摘要页面返回到数据输入页面时。。。我解析查询字符串,用帐号预先填充文本框#1的值。
如果用户随后更改了预先填充的帐号并单击按钮1。账户摘要页面上的数据用于预先填充的账户号码,而不是用户键入的新账户号码。
命令按钮的代码设置文本框#1的值,并将其作为单击事件的一部分粘贴在查询字符串中;但是,querystring保留了预先填充的值。
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;
我已经尝试使用Use-Submit行为为false。我尝试过使用javascript"onblur",尽管我可以在警报中显示txtAPN(文本框1)的值,其中包含新用户输入的值,而不是预填充的值,但数据始终是预填充的。
也不会进行验证。
如果在查询字符串中不返回任何内容。新用户输入的帐号有效,摘要页面上的数据用于新帐号。
它的行为就像我的命令代码被旁路了一样。为什么会发生这种情况?
我有一种强烈的感觉,每次加载页面时都会设置Text属性。
您需要设置一次Text属性(仅当执行GET时):
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
txtAPN.Text = ....;
}
}
否则,每次提交表单时,文本框都会从查询字符串中获取值(它会覆盖用户给定的值)。