我試圖創建幾乎與此類似[1]:http://weblogs.asp.net/infinitiesloop/archive/2007/09/17/inline-script-inside-an-asp-net-ajax-updatepanel.aspx用戶控件內asp.net聯標籤
我遇到的問題是,如果我使用嵌入式標籤的頁面屬性ClientID它解析爲「__Page」,但該頁面的子控件不會發生這種情況。因此,舉例來說,如果我使用這樣
<tag:InlineScript runat="server">
<script type="text/javascript">
alert('<%= ClientID %>');
alert('<%= SomeLabelInTheSamePage.ClientID %>');
</script>
</tag:InlineScript>
控制頁面呈現爲:
<script type="text/javascript">
alert('__Page');
alert('MainContent_CorrectLabelId');
</script>
任何想法,爲什麼?
[1]不同之處在於我使用用ParseChildren(false)裝飾的用戶控件(而不是服務器控件),與我鏈接的頁面的代碼相同。
你確定你正在做正確的結合,在代碼返回客戶端ID後面如果有必要,你指派或聲明的ClientID也被客戶端ID存儲在一個會話[」 ClientID「]在您的代碼..?如果您試圖按照示例..我沒有看到你在哪裏註冊ScriptManager.RegisterStartupScript(this,typeof(Page),UniqueID,「alert('hi')」,true);如在Url示例中所示。 – MethodMan 2012-01-12 19:02:22
還有什麼其他方案會提示('<%= ClientID%>');呈現正確的ID?僅在用戶控件中? – 2012-01-12 19:06:14
你有標籤:InLineScript,你有沒有嘗試做任何事情,如var tmp = document.getElementsByTagName(「yourTagName」) – MethodMan 2012-01-12 19:09:39