[英]ASP.NET: Is it possible to create dynamically-named Javascript functions without using .NET code (ie, VB.NET or C#)?
我有一個自定義用戶控件(ascx),其中包含一個文本框和一個基於Javascript的計數器,以使用戶知道他們剩下要鍵入的許多字符。 此控件中的內容如下:
function GetTextBox() {
return document.getElementById("<%=txNotes.ClientID %>");
}
當我們在頁面上只有一個該用戶控件的實例時,這很好用,但是現在我們必須支持多個。 如您所知,在頁面上具有該控件的多個實例將導致多個GetTextBox()函數,無論如何都只會調用其中的最后一個。 為了支持多個實例,我使用以下方法:
if (!string.IsNullOrEmpty(TextBoxName) && !Page.ClientScript.IsClientScriptBlockRegistered(TextBoxName))
{
string Script = string.Format("function Get{0}Notes() {{ return document.getElementById(\"{1}\"); }}",
TextBoxName, txNotes.ClientID);
Page.ClientScript.RegisterClientScriptBlock(GetType(), TextBoxName, Script, true);
}
TextBoxName
是一個公共的usercontrol屬性,因此,如果開發人員通過Employee,它將生成一個名為GetEmployeeNotes()
的Javascript函數。 之所以如此有效,是因為現在我們可以擁有一個獨特的GetNotes()函數。
但是,我不喜歡將其硬編碼到背后的代碼中。 我想要一個基於標記的解決方案,在我想更改Javascript的情況下,不需要重新構建項目。 有人知道這樣做的方法嗎?
編輯 :我已經考慮過創建一個單獨的.js文件,可以使用文本閱讀器閱讀該文件,但這聽起來有些黑,我想盡可能避免這種情況。
編輯2 :下面衛隊的答案會起作用,但由於我在他的答案下面給出的原因,我不想走那條路線。 如果沒有人可以提供另一種方法來做我想做的事情,我很可能會將他標記為答案,因為從技術上講,它完全可以滿足我的要求。
我不是.NET專家,但是它不是作為預處理器工作的嗎?
寫作不合法嗎
function Get<%=Name %>Notes() {...}
?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.