我已经开始在一家公司工作,并且不能完全访问他们先前构建的对象/框架/等,而且还受命使用库/对象/等来创建新系统。我可以覆盖他们的大多数图书馆,但没有看到到底发生了什么,我发现使用它具有挑战性。
.net网络表单中的全部内容,我实际上也不是很熟悉。
他们有一个基于Webforms的习俗Model-View-Controller类系统,可以生成完全控制的ascx页面,但是,当然,ascx文件只是一行,后面的代码为空,所以我所能做的一切看到是动态生成的标记。
我将写出如下标记:
<div id="id1">
<div id="id2">
<div id="id3">
<table id="tt_id1">
<input id="myModelNameID">
等,等等
在.net中,对象的名称也与在标记中生成的名称不同,因此这使事情变得更具挑战性-我必须花一会儿时间检查对象,以找到控件所在位置的完整路径。
访问深度嵌套控件的最简单方法是什么?
我尝试使用对不同ID的引用(例如ClientID与ID),等等。我在各处都找到了示例,但通常人们都在做类似我正在做的事情。
我试图避免编写30个findControls等。我可以写一个我想可以做到的方法,但是我希望有一种更简单的方法,或者已经有一些可用的方法。
当我尝试访问代码中的任何内容以访问对象时,我正在调试器中检查它们或使用dumper类或反射,然后编写如下内容:
//This is an example that would add a button in a table.
Button MyButt = new Button();
MyButt.Text = "Click Me";
//Split into sections for readability...
Control c = Page.FindControl("ctl00").FindControl("Form1");
Control c2 = c.FindControl("MainPage").FindControl("id1");
Control MyTable = c2.FindControl("id2").FindControl("myTable1");
MyTable.Controls.Add(MyButt);