[英]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>
其中url
和linkName
在C#代碼中定義為類內的私有string
。
該按鈕不起作用,並且有警告顯示未使用url
和linkName
。 我應該怎么做才能讓標記訪問代碼隱藏變量?
您的第一個問題是,您試圖在客戶端上運行服務器端代碼-將OnClientClick
更改為OnClick
。
接下來,您將需要設置linkName
和url
屬性的保護級別,以便您的ASPX標記可以訪問它們。 您可以將其設置為public
或protected
( source )。 最后,從刪除多余的參數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.