簡體   English   中英

ASP.NET標記如何在代碼隱藏中訪問變量?

[英]ASP.NET how does markup access to variables in code-behind?

我有一個帶有按鈕的網絡表單:

<asp:Button ID="btn1" runat="server" text="Click me"
            OnClientClick="printVideos(new Object(),new EventArgs(),url,linkName)"/>

並且OnClientClick事件是

<script language= "c#" type="text/C#" runat= "server">
    private void printVideos(Object sender, EventArgs e, string url, string linkName) {

        for (int i = 0; i < 4; i++) {
            Response.Write("<a href='"+url+"'target_blank>'"+linkName+"</a>");
        }
    }
</script>

其中urllinkName在C#代碼中定義為類內的私有string

該按鈕不起作用,並且有警告顯示未使用urllinkName 我應該怎么做才能讓標記訪問代碼隱藏變量?

您的第一個問題是,您試圖在客戶端上運行服務器端代碼-將OnClientClick更改為OnClick

接下來,您將需要設置linkNameurl屬性的保護級別,以便您的ASPX標記可以訪問它們。 您可以將其設置為publicprotectedsource )。 最后,從刪除多余的參數printVideos方法-在OnClick處理程序需要一個特定的方法簽名。 因此,您的按鈕標記應類似於:

<asp:Button ID="btn1" runat="server" text="Click me" OnClick="printVideos"/>

還有你的劇本...

<script language= "c#" type="text/C#" runat= "server">
    private void printVideos(Object sender, EventArgs e) {
        for (int i = 0; i < 4; i++) {
            Response.Write("<a href='"+url+"'target_blank>'"+linkName+"</a>");
        }
    }
</script>

在頁面的代碼隱藏中,聲明變量:

protected string url = "...";
protected string linkName = "...";

暫無
暫無

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

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