在 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 设置 runat="server"。
- 我必须使用 <%=ClientID%>_MyElement 作为 ID 约定。
所以假设 div 将保持原样 - 有没有办法获取引用 从后面的代码到它?
最佳答案
试试这个:
<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');
关于c# - 如何从代码隐藏的更新面板中找到客户端元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18572898/