簡體   English   中英

將值傳遞給ASP.NET中的javascript

[英]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直接編譯整個表達式,而不是將內容顯示為屬性的值。

http://support.microsoft.com/kb/976112/en-us

嗯,您的標記看起來正確,我將嘗試一些方法,首先嘗試通過代碼添加onclick事件,然后查看是否添加了ID。 這樣,您將知道您的文本框生成是否正常工作。

您還可以通過以下方法來解決:在document.ready之后使用JQuery進行單擊綁定,並將值作為表單上的隱藏值。

暫無
暫無

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

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