Как получить TextBox из DetailsView — ASP.NET

У меня есть элемент управления DetailsView внутри текстового поля в качестве шаблона. Мне нужно узнать значение для TextBox при вставке обработчика событий данных, _ItemInserting.

Скрипт не работает. Муравьиные идеи?? Спасибо

-------------------- ВЕБ-ФОРМА

<asp:TemplateField HeaderText="Profile" SortExpression="ContentAuthor">
                <ItemTemplate>
                    <asp:Label ID="uxContentAuthorDisplayer" runat="server" Text='<%# Bind("ContentAuthor") %>'></asp:Label>
                </ItemTemplate>
                <InsertItemTemplate>
                    <asp:TextBox ID="uxContentAuthorInput" runat="server" Text='<%# Bind("ContentAuthor") %>'></asp:TextBox>
                </InsertItemTemplate>
            </asp:TemplateField>

-------------------- КОД ЗА

          protected void uxInsertAuthor_ItemInserting(object sender, DetailsViewInsertEventArgs e)
        {
            //// Find control on page
            TextBox myAuthorProfile = (TextBox)uxInsertAuthorInput.FindControl("uxContentAuthorDisplayer");
            // Set a default value in Data Base if field has been left empty (DB field NOT NULL)           
            if (string.IsNullOrEmpty(myAuthorProfile.Text))
            {
                string myAllert = "Field is NULL";
            }
            else
            {
                string myAllet = "Field is NOT NULL";
            }          
        }

person GibboK    schedule 09.11.2010    source источник


Ответы (3)


Попробуйте использовать метод FindControl вашего элемента управления контейнером TemplateField (DetailsView). Например, если ваш DetailsView называется "MyControl", попробуйте

//// Find control on page
TextBox myAuthorProfile = (TextBox)MyControl.FindControl("uxContentAuthorInput");

Пожалуйста, обрати внимание

Вы используете идентификатор элемента управления Label в методе FindControl и пытаетесь преобразовать его в TextBox.

person Lorenzo    schedule 09.11.2010
comment
Я сделал, но не работает, не могли бы вы быстро взглянуть на мой код? спасибо - person GibboK; 09.11.2010
comment
@GibboK: код прежний. Во всяком случае, я понял, что вы используете uxContentAuthorDisplayer в методе FindControl, который является идентификатором метки, а не идентификатором TextBox. Вместо этого вы должны использовать uxContentAuthorInput. - person Lorenzo; 09.11.2010
comment
вы правы, я сделал ошибку раньше. Большое спасибо за помощь :-) пока - person GibboK; 09.11.2010


Если я правильно понял, вы хотите проверить значение TextBox, когда данные помещаются в DetailsView. Событие ItemInserting не то, что вы ищете:

http://msdn.microsoft.com/en-us/library/keezbt7k.aspx

Я бы сказал, что ItemCreated это тот, кого вы ищете.

person Farinha    schedule 09.11.2010