c# - 如何从代码隐藏的更新面板中找到客户端元素?

标签 c# javascript html asp.net ajax

在 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:

  1. 我不能为那个 div 设置 runat="server"。
  2. 我必须使用 <%=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/

相关文章:

c# - 使用模拟存储库进行单元测试命令类

c# - MVC中如何处理jQuery bootgrid请求数据

c# - 在 Windows 窗体应用程序中控制继承以获得一致的外观

c# - 立即取消所有正在运行的C# Parallel.Foreach 线程

javascript - 未选择第二个下拉菜单

javascript - 如何获得 react.element 的高度

javascript - z-index 图像在使用下一个上一个按钮时不显示,例如使用 jquery 的图像库

html - 如何止仓: fixed element in the right place in css and html?

javascript - Ajax PUT 请求失败

html - table 的圆 Angular