DetailsView изменить текст на метку на событие ItemInserted - PullRequest
1 голос
/ 23 ноября 2010

У меня есть метка в DetailsView.Мне нужно изменить свойство Text этой метки внутри DetailsView после того, как событие ItemInserted было инициировано.

Скрипт не выдает никакой ошибки, но метка не меняет свое текстовое свойство.Есть идеи, что я делаю не так?

Спасибо за ваше время!

Разметка:

<asp:DetailsView ID="uxInsertAuthorInput" runat="server" AutoGenerateRows="False"
        DataKeyNames="AuthorId" DataSourceID="EntityDataSourceCreateAuthor" DefaultMode="Insert"
        OnItemInserting="uxInsertAuthor_ItemInserting" OnItemInserted="uxInsertAuthorInput_ItemInserted">
    <Fields>
        <asp:TemplateField HeaderText="First Name" SortExpression="FirstName">
            <ItemTemplate>
                <asp:Label ID="uxFirstNameDisplayer" runat="server" Text='<%# Bind("FirstName") %>' />
            </ItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="uxFirstNameInput" runat="server" Text='<%# Bind("FirstName") %>' />
                <asp:RequiredFieldValidator ID="uxRequiredFieldValidatorFirstName" runat="server"
                    ControlToValidate="uxFirstNameInput" ErrorMessage="First Name Field is required">*</asp:RequiredFieldValidator>
            </InsertItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Last Name" SortExpression="LastName">
            <ItemTemplate>
                <asp:Label ID="uxLastNameDisplayer" runat="server" Text='<%# Bind("LastName") %>' />
            </ItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="uxLastNameInput" runat="server" Text='<%# Bind("LastName") %>' />
                <asp:RequiredFieldValidator ID="uxRequiredFieldValidatorLastName" runat="server"
                    ControlToValidate="uxLastNameInput" ErrorMessage="Last Name Field is required">*</asp:RequiredFieldValidator>
            </InsertItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="UserId" SortExpression="UserId">
            <InsertItemTemplate>
                <asp:DropDownList ID="uxUserListSelector" runat="server" />
                <asp:Label ID="uxAllert" runat="server" Text="Label" />
            </InsertItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Profile" SortExpression="ContentAuthor">
            <ItemTemplate>
                <asp:Label ID="uxContentAuthorDisplayer" runat="server" Text='<%# Bind("ContentAuthor") %>' />
            </ItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="uxContentAuthorInput" runat="server" Text='<%# Bind("ContentAuthor") %>' />
            </InsertItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="NoteInternal" SortExpression="NoteInternal">
            <ItemTemplate>
                <asp:Label ID="uxNoteInternalDisplayer" runat="server" Text='<%# Bind("NoteInternal") %>' />
            </ItemTemplate>
            <InsertItemTemplate>
                <asp:TextBox ID="uxNoteInternalInput" runat="server" Text='<%# Bind("NoteInternal") %>' />
            </InsertItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowInsertButton="True" />
    </Fields>
</asp:DetailsView>

Кодовый код:

protected void uxInsertAuthorInput_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
{
    String FirstName = e.Values["FirstName"].ToString();
    String LastName = e.Values["LastName"].ToString();
    uxMessageDisplayer.Text = string.Format("Author: {0} {1} has been added.", FirstName, LastName);

    // problem is here:
    Label myAllert = (Label)uxInsertAuthorInput.FindControl("uxAllert");
    myAllert.Text = "TEST";
}

1 Ответ

1 голос
/ 23 ноября 2010

вам нужно использовать ItemUpdated событие подробного просмотра, а не ItemInserted событие

ItemUpdated: Происходит при нажатии кнопки Обновить в элементе управления DetailsView, но после операции обновления,с здесь

Я уверен, что это решит проблему 100%

...