页面前台如果是div,后台如何FindControl?

abz7676 2017-04-18 05:04:29


<table id="Tb1" runat="server" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td>
<div id="Type_1" runat="server" >
</div>
</td>
</tr>

<tr>
<td>
<div id="Type_2" runat="server" >
</div>
</td>
</tr>

<tr>
<td>
<div id="Type_3" runat="server" >
</div>
</td>
</tr>

</table>



页面后台如何FindControl前台的Div?



System.Web.UI.WebControls. ???? = Tb1.FindControl("Type_" + dr["rowIndex"].ToString()) as System.Web.UI.WebControls.????;



...全文
223 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2017-04-19
  • 打赏
  • 举报
回复
2楼已给出正解
吉普赛的歌 2017-04-18
  • 打赏
  • 举报
回复
P哥
  • 打赏
  • 举报
回复
在你的代码中,其实就是“as ......”这里乱写了一个类型名,于是返回为 null。如果类型写对了,那么自然就能找到对象。 但是要能够自己发现类型,你需要测试。例如直接在调试器上看看 FindControl 返回的对象的类型,或者用其它方法输出。
  • 打赏
  • 举报
回复
你的 runat="server" 的 <div>,在 asp.net 编译为 HtmlGenericControl 对象。它并不 WebControl,而是 HtmlControl。 另外,查找它其实也并不需要从 Tb1 查找。例如代码
var x = (HtmlGenericControl)Tb1.FindControl("Type_1");
var y = (HtmlGenericControl)Label1.FindControl("Type_1");
对于
<table id="Tb1" runat="server" width="100%" cellpadding="0" cellspacing="0">
 <tr>
      <td>
          <div id="Type_1"  runat="server" >
          </div>
       </td>
</tr>
 
<tr>
      <td>
           <div id="Type_2"  runat="server" >
           </div>
       </td>
</tr>
 
<tr>
      <td>
           <div id="Type_3"   runat="server" >
           </div>
       </td>
</tr>
 
</table>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
同样可以找到 Type_1。 因此,有人说从父控件开始执行 FindControl 来查找,这是不理解 FindControl 的机制的。正如这里所示,从 Label1 开始执行 FindControl 照样可以找到 Type_1,因为不论是 Tb1、Label1还是 Type_1,它们都在同一个 NamingContainer 下面。搞懂如何使用 FindControl 的机制,要先学过 NamingContainer 概念。这可以检验一个 asp.net 程序员是自学的还是专门学过 asp.net,一般自学的人所读的入门书虽“厚”但是罗列得较浅,所以不会讲到原理。
  • 打赏
  • 举报
回复
你怎么找 Tb1 就怎么找 Type_1。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧