我正在构建一个自动加载数据库记录的类,查看每个数据库列名称,并填充相关的文本框/标签/文字/等,如果它具有相同的名称。我从Rails那里得到了这个想法,以防有助于澄清我想要做的事情。
public string presentData(Page thisForm)
{
// .. for each column name
// ... thisForm.FindControl() happens
}
我似乎无法找到我想要的控件,并且很可能有更好的方法来做到这一点。
编辑:如果我可以通过另一种方式来节省性能,那么一定要提出建议。我有大型表单,递归FindControl会导致性能时间的增长。
答案 0 :(得分:3)
FindControl不是递归的,因此它只能找到顶级控件,而不是嵌套在其他控件中的控件。有关FindControl的递归版本的示例,请参阅this article。
答案 1 :(得分:1)
我的建议是使用绑定到DataSet的BindingSource,而不是递归地查找每个控件并设置其值。
http://msdn.microsoft.com/en-us/baya8sx4.aspx
http://msdn.microsoft.com/en-us/library/801dxw2t.aspx
http://www.codeproject.com/KB/grid/BindSourceBindingNavCS.aspx
http://msdn.microsoft.com/en-us/library/fbk67b6z(VS.80).aspx?ppud=4
答案 2 :(得分:0)
您是否考虑过填充控件客户端? JQuery可能是一个很好的起点。您将生成Javascript / JQuery以在服务器上进行填充,然后JQuery负责搜索控件。效率非常高。