![](/img/trans.png)
[英]How to pass values to an external Javascript script from ASP.NET
[英]Pass values to javascript in ASP.NET
我有一個ASP文本框控件,在發生OnClick事件時,我需要在其中執行一些javascript函數。 我需要將該頁面上其他控件的兩個ID傳遞給該javascript函數。 我的文本框標記如下:
<asp:TextBox ID="txtMonthDisplay" runat="server" Style="border-top: none; border-left: none;
border-right: none; border-bottom: solid 1px blue; cursor: pointer; color: Blue;
width: 35px;" EnableViewState="True" MaxLength="3" onClick="javascript: ShowBox('<%= divYear.ClientID%>', '<%= txtYearDisplay.ClientID %>');"></asp:TextBox>
但是只要它調用javascript函數,我都會設置一個警報來檢查傳入的值,它們只是<%= txtYearDisplay.ClientID%>和<%= divYear.ClientID%>。 不是這些控件的實際ID。
我在這里想念的是什么,還是做錯了? 我對ASP.NET不太了解,所以服務器端與客戶端端對我來說有點模糊。
謝謝
您不能將Response.Write
( <%= %>
是Response.Write
縮寫)(通常)放入服務器標記中。
相反,您可以在后面的代碼中編寫onclick處理程序:
txtMonthDisplay.Attributes["onclick"] = string.Format(
"ShowBox('{0}', '{1}');",
divYear.ClientID,
txtYearDisplay.ClientID);
順便說一句,您不需要javascript:
前綴。 僅在將鏈接的href
設置為執行腳本時才需href
。 事件處理程序(例如onclick
不需要它。
然后從代碼隱藏傳遞變量:
protected void Page_Load(object sender, EventArgs e){
txtMonthDisplay.Attributes.Add("onClick",
String.Format("ShowBox('{0}','{1}')",
divYear.ClientID,
txtYearDisplay.ClientID));
}
<%= ... %>
顯示表達式等效於僅包含Response.Write(…)
語句的嵌入式代碼塊。 這是顯示信息的最簡單方法,例如單個字符串,一個int變量或一個常數。
請記住 ,顯示表達式不能在服務器控件的屬性中使用。 這是因為.NET Framework直接編譯整個表達式,而不是將內容顯示為屬性的值。
嗯,您的標記看起來正確,我將嘗試一些方法,首先嘗試通過代碼添加onclick事件,然后查看是否添加了ID。 這樣,您將知道您的文本框生成是否正常工作。
您還可以通過以下方法來解決:在document.ready之后使用JQuery進行單擊綁定,並將值作為表單上的隱藏值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.