簡體   English   中英

單擊時,asp.net c#命令按鈕不運行命令代碼

[英]asp.net c# Command button doesn't run command code when clicked

我有3頁的ac#asp.net應用程序。 第1頁是數據輸入。 第2頁是名稱搜索。 第3頁是帳戶信息的摘要。

第一頁包含2個asp:文本框(es)和2個按鈕。 第一個文本框允許用戶輸入帳號。 第二個文本框允許用戶輸入名稱以“按名稱查找帳號”搜索。 按鈕1通過查詢字符串將文本框1中的帳號提交到帳戶摘要頁面。 按鈕2通過查詢字符串將名稱提交到查找到名稱搜索頁面。

在名稱搜索頁面上,顯示帳號和名稱的列表,該帳號是指向數據條目的href鏈接。 帳號通過名稱搜索頁面上的鏈接中的查詢字符串轉移回數據輸入頁面。

我的問題是這樣發生的。 從名稱搜索頁面或帳戶摘要頁面返回數據輸入頁面時,我解析查詢字符串以使用帳號預填充文本框#1的值。

如果用戶隨后更改了預先填充的帳號並單擊按鈕號1,則“帳戶摘要”頁面上的數據將針對預先填充的帳號,而不是用戶鍵入的新帳號。

命令按鈕的代碼設置了文本框#1的值,並將其作為click事件的一部分粘貼在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;

我嘗試使用使用提交行為為false。 我嘗試使用JavaScript“ onblur”,雖然我可以在警報中顯示txtAPN(文本框1)的值,但輸入的是新用戶輸入的值,而不是預先填充的值,但數據始終是預先填充的值。

同樣,也不會發生驗證。

如果我在查詢字符串中不返回任何內容。 將驗證新用戶輸入的帳號,並且摘要頁面上的數據將用於新帳號。

絕對就像我的命令代碼被繞過一樣。 為什么會這樣?

我有一種強烈的感覺,那就是每次加載頁面時都要設置Text屬性。

您只需設置一次Text屬性(僅在執行GET時):

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

否則,每次提交表單時,文本框都會從查詢字符串中獲取值(它將覆蓋用戶提供的值)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM