如何获得所有控件在HTML表格中
本文关键字:控件 HTML 表格 Label 何获得 asp | 更新日期: 2023-09-27 18:14:20
我正在更新一些旧代码,这些代码循环遍历集合并根据对象中的值设置一些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;
}
}
(我说很不幸,因为它实际上有5行我忽略了,不管情况下做同样的事情)
现在,我可以把所有15个label
控件放在一个数组中,在我的for
循环中只做if (i <= 15) lblArr[i].Text = myVariable;
,但我不想硬编码这个数组。如果我们添加了更多的标签,那么我们需要记得更新这个函数。
所以,我试图找到一种方法来找到一个特定的HTML元素中的所有控件,但我找不到一个工作的例子。net语言。
在winforms中,我可以简单地迭代someControl.Controls
并找到适当的,但由于这些是HTML表中的标签,而不是重复器或类似的东西,我不知道如何找到它们。什么好主意吗?
您可以使用FindControl方法:
for (int i = 0 ; i < length; i++)
{
Label ans = FindControl(string.Format("lbl{0}",i)) as Label ;
if (ans!=null) and.Text = myVariable
}
jquery怎么样?它肯定比。net快得多。试一试……:)
$(function () {
var myTableId = "yourTableId";
var yourReplacementText = "yourReplacementText";
var allSpansUnderYourTable = $('#' + myTableId).find('span');
$.each(allSpan, function (index, item) {
item.innerHTML = yourReplacementText;
});
});
根据代码的复杂程度,在页面加载时检索db行,将其设置为代码背后的属性(或将其数据放在作为页面属性的对象中),然后使用代码块绑定到它可能更简洁。你也可以用这种方法去掉所有的<asp:Label>
元素。
。
<table>
<tr>
<td><span><%: myObject.Property1 %></span></td>
</tr>
</table>
这样你就可以使所有的绑定都是声明性的,并且不需要过程代码背后的逻辑来循环和设置东西。