簡體   English   中英

在 ASP.net 中的頁面加載時從代碼后面調用代碼?

[英]Call code from code behind on page load in ASP.net?

我只是想在頁面加載后立即從 immediateky 后面的代碼中調用代碼。

我怎樣才能做到這一點? 我嘗試制作一個不可見的按鈕,然后嘗試在加載時單擊它,但這對我不起作用。 希望有更簡單的方法。

這是后面的代碼。 文件名是CodeBehind.aspx.cs

    public partial class DoTheThing: InjectablePageBase
    {
        private string GetURL(Object sender, EventArgs e){
             // RUN MY CODE
        }
    }

這是.aspx文件的相關部分:

<%@ Page Language="C#" AutoEventWireup="false" CodeBehind="CodeBehind.aspx.cs" Inherits="Test.GuideMe.DoTheThing" MasterPageFile="~/Theme/Framework.Master"%>
<asp:Content ID="Content2" runat="server" ContentPlaceHolderID="PageContentPlaceHolder">
<script Language="JavaScript">
    window.onload = function() { document.querySelector('#invisibleGuideMeBtn').click() };
</script>

<div>
    <a id="invisibleGuideMeBtn" href="#" onclick="<%= GetURL %>" target="_self"  runat="server">The Link</a>
    <%-- <asp:Button ID="invisibleGuideMeBtn" Text="Edit" onclick="GetURL" CssClass="btn btn-primary"/> --%>
    <%-- <asp:LinkButton id="invisibleGuideMeBtn" Text="" OnClientClick="GetURL" runat="server"/> --%>
    <%-- <u><b><asp:LinkButton OnClick="GetGuideMeURL" runat="server">Click here</asp:LinkButton></b></u> --%>

</div>
</asp:Content>

以上是我嘗試單擊按鈕/鏈接以調用背后代碼的 4 種不同方式。 我要么收到錯誤消息:

Uncaught TypeError: Cannot read properties of null (reading 'click')
    at window.onload

或錯誤: The function GetURL cannot be found

我曾經遇到過這個錯誤,下面修復了它,不確定它是否適合你。

我使用 <%#CSCodeName() %> 這種格式來獲取后面的代碼,有時我必須添加一個像這樣的分號 <%#CSCodeName(); %>

所以,頁面要加載,然后顯示,然后我們要單擊一個按鈕並運行一些代碼。

但是,這意味着頁面將重新加載,並且在頁面加載后,您的代碼會再次運行,對嗎?

所以,必須有額外的信息才能正確回答這個問題。 您當然可以輕松觸發一些代碼,甚至讓這些代碼單擊隱藏按鈕以在代碼后面運行您的代碼存根。 但這當然會導致頁面回發,重新加載,現在我們回到頁面加載后 - 它剛剛做了,我們要再次運行代碼嗎?

那么,您在頁面加載后使用什么標准來運行,或者不再運行您想要的代碼? 如果沒有這個信息,那么頁面加載后,我們點擊那個隱藏的按鈕,然后頁面會再次加載,頁面加載后,代碼會一次又一次地點擊按鈕,對嗎?

暫無
暫無

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

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