C# 如何获得全部<;asp:标签>;HTML表中的控件?

C# 如何获得全部<;asp:标签>;HTML表中的控件?,c#,asp.net,C#,Asp.net,我正在更新一些在集合上循环的旧代码,并根据对象中的值设置一些UI显示属性 不幸的是,它是这样硬编码的: for (int i = 0 ; i < length; i++) // length is going to be 30+ { // do some stuff switch (i) { case 1: lbl1.Text = myVariable; break; case 2:

我正在更新一些在集合上循环的旧代码,并根据对象中的值设置一些UI显示属性

不幸的是,它是这样硬编码的:

for (int i = 0 ; i < length; i++) // length is going to be 30+
{
    // do some stuff

    switch (i)
    {
        case 1:
            lbl1.Text = myVariable;
            break;
        case 2:
            lbl2.Text = myVariable;
            break;
        ....
        case 15:
            lbl15.Text = myVariable;
            break;
    }
}
for(inti=0;i
(我说的很不幸,因为我遗漏的每个案例实际上还有5行代码,不管案例如何,它们都会做完全相同的事情)

现在,我可以将所有15个
label
控件放在一个数组中,并放在我的
for
循环中,如果(I您可以使用以下方法:

for (int i = 0 ; i < length; i++) 
{
     Label ans = FindControl(string.Format("lbl{0}",i)) as Label ;
          if (ans!=null) and.Text = myVariable

}
for(int i=0;i
jquery怎么样?它肯定比.NET快得多。试一试…:)


根据代码的复杂性,只需在页面加载时检索db行,将其设置为codebehind上的属性(或将其数据放在作为页面属性的对象中),然后使用代码块绑定到它,可能会更简洁。您也可以通过这种方式除去所有的
元素

e、 g



这样,您就可以使所有绑定都成为声明性的,并且不再需要过程性代码隐藏逻辑来循环和设置内容

好奇的是,如果长度将是30+,为什么开关会在15结束?你真的在使用一个普通的HTML表还是一个在服务器上运行的WebControl表?@Amit我正在迭代的集合不仅仅是在页面上设置一些值,但是前15个元素包含“extra”的值用户定义fields@thewisegod是的,它是一个实际的HTML表,在表数据元素中放置了asp标签。您可以始终使HTML表运行at=server:)然后我需要一种方法将在页面加载时获取的DB中的值传递到该脚本。我刚刚离开工作,但我认为这应该可以满足我的要求;我认为它们实际上都是“customlabel1、2、3”等,所以这很容易。
$(function () {

    var myTableId = "yourTableId";
    var yourReplacementText = "yourReplacementText";
    var allSpansUnderYourTable = $('#' + myTableId).find('span');
    $.each(allSpan, function (index, item) {
        item.innerHTML = yourReplacementText;
    });
});
<table>
   <tr>
     <td><span><%: myObject.Property1 %></span></td>
   </tr>
</table>