Доступ к текстовому полю, созданному в itemdatabound командой itemcommand ретранслятора
Я динамически создал несколько HtmlTableCell и несколько текстовых полей внутри ItemDataBound моего ретранслятора. Я назвал внутри ForEach с помощью txt1, txt2 и т. д. Когда я нажимаю кнопку edit, мне нужно получить доступ к ним через ItemCommand, чтобы поставить Enable=true, но я не могу, потому что по какой-то причине мой ретранслятор просто позволяет мне получить доступ к элементам управления, которые я вставил на страницу aspx. Я все перепробовал, но не могу получить доступ к текстовому полю ... Если кто-нибудь сможет мне помочь, я буду очень благодарен. Как вы можете видеть в приведенном ниже примере, я вставил текстовое поле внутри объекта HtmlTableCell, потому что столбцы тоже являются динамическими ...
Что я уже пробовал:
/* my Repeater ItemDataBound */ int i = 1; for(int i = 1; i <= 24; ++i) { double qtd = com.STRTODOUBLE(HI.ToString()); TextBox txtQTD = new TextBox() { ClientIDMode = ClientIDMode.Static, ID = e.Item.ItemIndex.ToString() + "_" + i.ToString(), CssClass = "form-control text-center h5 small", MaxLength = 12, Text = qtd.ToString("n1"), Enabled = false }; HtmlTableCell htc = new HtmlTableCell(); htc.Attributes.Add("class", "text-right"); htc.Controls.Add(txtQTD); tr.Controls.Add(htc); ++i; } /* my Repeater ItemCommand */ ... if (e.CommandName.ToString() == "HSG") { for (int i = 1; i <= 24; ++i) { /* I can access any control that was added in the aspx page, but the dynamic control below always returns null value */ TextBox txtQTD = (TextBox)e.Item.FindControl(e.Item.ItemIndex.ToString() + "_" + i.ToString()); txtQTD.Enabled = true; ++i; } }