我在一个 aspx 页面上有大量文本框,其 ID 以“txt”为前缀,其余的 ID 在某个对象中具有相应的同名属性。我希望能够枚举这些字符串属性并在找到同名文本框(已删除前缀)的位置更新它们。有任何想法吗?我知道通过使用Dictionary
我可以解决问题,但这并不理想。
问问题
64 次
3 回答
4
您可以使用反射来做到这一点:
MyObject data = new MyObject();
foreach (var pi in typeof(MyObject).GetProperties().Where(i =>
i.PropertyType.Equals(typeof(string)))
{
var control = FindControl("txt" + pi.Name) as ITextControl;
if (control != null)
pi.SetValue(data, control.Text, null);
}
于 2012-08-23T15:57:35.067 回答
1
您可以使用以下控件:
foreach (Control control in divXYZ.Controls)
if (control is TextBox)
((TextBox)control).Text = "whatever";
FindControl 是您可以在解决方案中使用的另一种方法:
Control myControl = FindControl("txtYourID");
于 2012-08-23T16:06:45.960 回答
0
只需找到页面上的所有文本框控件,然后使用反射填充相应的属性。
于 2012-08-23T15:59:56.990 回答