2010-11-23 9 views
1

Ich habe Label in einem DetailsView. Ich muss die Texteigenschaft dieses Labels in der Detailansicht ändern, nachdem das Ereignis ItemInserted ausgelöst wurde.DetailsView Text auf ein Label auf ItemInserted Ereignis ändern

Skript verursacht keinen Fehler, aber das Label ändert seine Texteigenschaft nicht. Irgendwelche Ideen, was ich falsch mache?

Danke für Ihre Zeit!

Markup:

<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> 

-Code-behind:

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"; 
} 

Antwort

1

Sie ItemUpdated Fall Details verwenden müssen, statt ItemInserted Ereignis

ItemUpdated: Tritt ein, wenn eine Update-Taste innerhalb von Ein DetailsView-Steuerelement wird angeklickt, aber nach dem Update-Vorgang. von here

Ich bin sicher, dieses Problem zu 100%

+0

Dank lösen wird, fand ich die Lösung aus: es mit _ItemCreated auch Dank für Ihre Hilfe arbeitet – GibboK

Verwandte Themen