这是控制结构
ContentPlaceHolder
- >向导
- >面板
我使用setTimeout在x分钟后显示面板。
如何获取面板的ClientID?
需要的javascript行如下:
setTimeout(displayExtendSession('<%= ExtendSession.ClientID %>', 600000);
ASPX
<asp:Content ID="Content1" runat="server" ...>
<asp:Wizard ID="wizard1" runat="server" ... >
<asp:Panel ID="ExtendSession" runat="server">
<asp:Label ID="ExtendSessionLifePrompt" runat="server" Text="Your session is going to expire in 1 minute. Would you like to extend your Session?"></asp:Label>
<asp:Button ID="ExtendSessionLife" runat="server" Text="Yes" />
<input type="button" id="CancelExtendSessionLife" value="No" onclick="HideExtendSession('<%= ExtendSession.ClientID %>'); return false;" />
</asp:Panel>
</asp:Wizard>
</asp:Content>
的javascript
function HideExtendSession(msgBox) {
if (msgBox)
document.getElementById(msgBox).style.display = "none";
}
function DisplayExtendSession(msgBox) {
if (msgBox)
document.getElementById(msgBox).style.display = "block";
}
setTimeout(DisplayExtendSession('<%= ExtendSession.ClientID %>', 600000);
setTimeout(HideExtendSession('<%= ExtendSession.ClientID %>', 720000);
答案 0 :(得分:1)
要获得ExtendSession
的客户ID,我认为您需要做的是:
setTimeout(displayExtendSession('<%= wizard1.FindControl("ExtendSession").ClientID %>', 600000);
<强>更新强>
如果你无法进入wizard1,那么可能这样:
setTimeout(displayExtendSession('<%= Content1.FindControl("wizard1").FindControl("ExtendSession").ClientID %>', 600000);
我希望双引号可以正常使用,但如果没有帮助,我相信你可以切换它们。
答案 1 :(得分:0)
如果你添加
ClientIDMode="Static"
到
<asp:Panel ID="ExtendSession" runat="server">
导致
<asp:Panel ID="ExtendSession" ClientIDMode="Static" runat="server">
asp.net不会破坏您的面板ID和
document.getelementbyid("ExtendSession")
将返回&lt; div&gt;的ID由asp:panel控件呈现。
答案 2 :(得分:0)
如果你没有太多的表现和所有,
以下代码可能是轻松完成任务的一种方式。
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(FindRecursiveControl(this,"ExtendSessionLife").ClientID.ToString());
}
Control FindRecursiveControl(Control cd, string Name)
{
if (cd.ID == Name && cd.ID !=null)
return cd;
foreach (Control c in cd.Controls)
{
Control cfind = FindRecursiveControl(c, Name);
if (cfind != null)
return cfind;
}
return null;
}