0
主頁:如何從主頁的javascript函數訪問用戶控制頁面dropdownlist控件ID?
<%@ Register TagPrefix="A" TagName="AA" Src="~/UserControls/ab.ascx" %>
<A:AA id="a1" runtat="server" />
<asp:Button ID="btn" Visible="true" runat="Server" OnClick="Btn_Click" OnClientClick="javascript:PreLoad();" />
<script type="text/javascript">
function PreLoad() {
var empty = '<%= (a1.FindControl("ddl")).ClientID %>';
// the above line giving error as 'ddl is inaccessible due to its protection level'
}
</script>
在用戶控件頁:
<%@ ControlLanguage="C#" AutoEventWireup="true" CodeBehind="ab.ascx.cs" inherits="ab.ascx.designer.cs" %>
<asp:DropDownList ID="ddl" runat="server"> </asp:DropDownList>
在ab.ascx.designer.cs
protected global::System.Web.UI.WebControls.DropDownList ddl;
有人請解釋乾淨簡單的訪問方式'PreLoad()'中的'ddl'' javascript函數?
謝謝,它真的很有用,你想介紹一下'ClientIDMode =「static」是如何工作的嗎?這個「靜態」有沒有其他方面的影響? – kneethan 2014-09-26 15:50:40
Webforms爲其添加到頁面的所有控件提供唯一的客戶端ID。這是放入原始html中的值。你可以通過調用.ClientID來獲得它,就像你在代碼中一樣。使用ClientIDMode =「static」意味着客戶端ID設置爲您指定的任何值,而不是讓webforms生成它。好處是,你可以從你的javascript的任何地方訪問它,就像上面一樣。唯一的缺點是它爲開發人員犯錯誤提供了空間。如果您不小心,可以使用相同的ID添加2個控件。 – Keith 2014-09-26 15:59:34
感謝您的澄清,您是否可以解釋爲什麼我的ClientID方法不起作用? – kneethan 2014-09-26 18:06:34