在asp.net中开发用户控件时,我发现了很大的困难 找到位于更新面板中的html客户端元素。
.ascx方面包含:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="<%=ClientID%>_MyElement">
</div>
</ContentTemplate>
</asp:UpdatePanel>
我需要在我的代码隐藏中获得对该div的引用。
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
//var c = UpdatePanel1.FindControl("<%=ClientID%>_MyElement"); //<-not working.
//:
//get some values from c
//:
}
}
现在,因为还有Ajax(JavaScript)操纵div:
所以假设div将保持不变 - 有没有办法获取引用 从后面的代码到它?
答案 0 :(得分:2)
试试这个:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="MyElement" runat="server">
</div>
</ContentTemplate>
</asp:UpdatePanel>
中的代码
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
var c = MyElement;
}
}
在javascript中
var MyElement=document.getElementById('<%= MyElement.ClientID');
答案 1 :(得分:1)
尝试从div
访问您的UpdatePanel
。示例:var div = UpdatePanel1.Controls[0];