2010-11-23 63 views
1

我在DetailsView中有標籤。 我需要在事件ItemInserted被觸發後更改DetailsView內的Label的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

你需要使用ItemUpdated事件DetailsView控件,而不是ItemInserted事件

ItemUpdated:時發生的更新按鈕內單擊DetailsView控件,但在更新操作之後。從here

我相信這將解決問題100%

+0

謝謝,我找到了解決方案:它正在與_ItemCreated也感謝您的幫助 – GibboK 2010-11-23 10:05:56