Вам понадобится какой-то механизм для создания связи между Button и TextBox, очевидно. В winforms это было бы легко, когда каждый элемент управления имеет свойство Tag, которое может содержать ссылку практически на что угодно. У веб-элементов управления нет такого свойства (о котором я знаю), но поддерживать такие отношения по-прежнему легко. Одним из подходов было бы иметь Dictionary
в связи кнопки / текстового поля на странице хранения:
private Dictionary<Button, TextBox> _buttonTextBoxRelations = new Dictionary<Button, TextBox>();
Когда вы создаете кнопки и текстовые элементы управления, вы вставляете их в словарь:
TextBox txtComment = new TextBox();
// ...
Button btnCommentSave = new Button();
// ...
_buttonTextBoxRelations.Add(btnCommentSave, txtComment);
... и затем вы можете посмотреть текстовое поле в событии нажатия кнопки:
protected void btnSave_Click(object sender, CommandEventArgs e)
{
TextBox commentTextBox = _buttonTextBoxRelations[(Button)sender];
firstelement.InnerText = txtComment.text // this gives error on txtComment.text
}