我只希望在Page_Load保存方法完成后觸發該方法。我創建了一個網頁/站點,用作 MySQL 數據庫的用戶界面。最初我使用純 JavaScript 和 HTML,它很實用,但很煩人,因為用戶每次從一個頁面導航到另一個頁面時都必須點擊三個確認按鈕。我通過將數據庫調用轉移到 .aspx.cs 文件以及一些表單和報告的數量來消除這種煩惱。然而,雖然頁面/站點現在再次正常運行,但現在它需要用戶按下保存按鈕,然后將他們希望保存的數據插入數據庫,然后再次按下保存。同樣,如果他們希望在詳細視圖中查看記錄,然后循環瀏覽記錄,他們必須按兩次下一個或上一個按鈕。我已經在調試中進行了跟蹤,并且第一次單擊按鈕時,它會命中該Page_Load方法,但沒有別的。然后,當您再次單擊時,它會點擊按鈕鏈接到的方法,然后點擊該Page_Load方法。這很煩人,因為用戶希望輸入一次信息,然后點擊保存并讓信息保持原樣......不會消失,需要第二次輸入。我不想像在這里所做的那樣關閉頁面加載:https ://stackoverflow.com/a/19454346/11035837我只希望它在保存方法完成后觸發。我該怎么做呢?以下是我正在使用的 c# 方法(精簡)。盡我所能告訴他們在文件中的放置順序沒有影響。當方法是按鈕構造中引用的方法時,為什么Page_Load要調用該方法?saveRecordprotected void Page_Load(object sender, EventArgs e){ loadRecord(); loadBackButton(); loadRecordCycleButtons(); loadSaveButton();}protected void loadSaveButton(){ SAVE_PH.Controls.Clear(); string prevPage = getPreviousPage(); string accessStatus = getViewEdit(); LinkButton save_BTN = new LinkButton(); save_BTN.ID = "save_BTN"; save_BTN.Text = "Save"; save_BTN.Visible = true; save_BTN.BackColor = Color.Green; save_BTN.ForeColor = Color.Black; save_BTN.BorderColor = Color.Gray; save_BTN.BorderStyle = BorderStyle.Solid; save_BTN.BorderWidth = 2; save_BTN.Width = 60; save_BTN.Attributes.Add("style", "text-align:center; border-color: white gray gray white; text-decoration:none"); save_BTN.Click += new EventHandler(saveRecord); if (accessStatus != "View") { SAVE_PH.Controls.Add(save_BTN); }}
1 回答
鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
我已經獲取了完整的代碼并將其剝離為僅按鈕,當我將其粘貼到新網頁中時,該頁面會正確執行。
通過注釋掉我在小樣本中刪除的內容,然后一次緩慢地添加一個元素,我發現罪魁禍首是代碼Server.Transfer("page.aspx");
具有此代碼的每個按鈕都需要選擇該按鈕兩次才能觸發該按鈕。
由于第一頁使用它導航到第二頁,因此必須先按下任何 asp 控制按鈕,然后才能正確執行任何按鈕。
所以我正在取消使用Server.Transfer("page.aspx");并尋找替代品。
相反,我在頁面加載屏幕中使用了類似代碼prev_BTN.Attributes.Add("href", "RecordDetailPage?RecNum=" + getPreviousRecord());和RORQL_BTN.Attributes.Add("href", "RecordLstPage?ViewEdit=view"); 與之相結合的代碼。String REC = Request.QueryString["RecNum"];String REC = Request.QueryString["ViewEdit"];
現在我有了想要從一個屏幕傳遞到另一個屏幕的數據,而且我不必多次單擊按鈕。
- 1 回答
- 0 關注
- 140 瀏覽
添加回答
舉報
0/150
提交
取消
