2013-01-14 36 views
4

我有一個DetailsView從哪裏獲得夫婦的會員資料的數據,我展示它的DetailsView ......這工作得很好:在EditItemTemplate中獲得價值從代碼隱藏

<ItemTemplate> 
       <asp:label ID="FirstName" runat="server" /> 
</ItemTemplate> 

但是,當我點擊編輯按鈕,沒有任何東西在場上出現。這是我做的模板編輯:

我打電話ItemUpdating是這樣的:

protected void DetailsView1_ItemUpdating(Object sender, DetailsViewUpdateEventArgs e) 
    { 
     //I get my memberprofle here 
     MemberProfile memberp = MemberProfile.GetuserProfile(data); 
     MembershipUser myuser = Membership.GetUser() 

     Label labelfName = DetailsView1.FindControl("FirstName") as Label; 
     labelfName.Text = memberp.fName; 
    } 

我應該使用Itemupdated呢?還是有另一種方法,我應該調用時單擊編輯按鈕,將編輯上的名字字段?另外,我在編輯模式下將它保留爲「LABEL」(通常是文本框)的原因是該字段必須是隻讀的。

+0

是否在編輯時觸發'DetailsView1_ItemUpdating'事件? – Kiran1016

回答

1

當你在編輯模式下輸入不激發ItemUpdating事件。您必須使用DataBound事件來正確設置所需的文本值。

如果有必要,您可以詢問DetailsView的CurrentMode屬性以瞭解您是否正在編輯或顯示。

結果看起來是這樣的:

protected void DetailsView1_DataBound(object sender, EventArgs e) 
{ 
    Label l = DetailsView1.FindControl("FirstName") as Label; 
    if (DetailsView1.CurrentMode == DetailsViewMode.Edit) 
    { 
     //obtained from your sample 
     MemberProfile memberp = MemberProfile.GetuserProfile(data); 
     MembershipUser myuser = Membership.GetUser() 

     l.Text = memberp.fName; 
    } 
    else 
    { 
     l.Text = "Another text or nothing"; 
    } 
} 

務必在您定義數據綁定事件Detailsview1控制。

備註:根據數據綁定模式可能會受到影響。如果是這樣,讓我知道並舉個例​​子。

0

將RowUpdating和RowEditing事件添加到您的gridview。

http://www.aspdotnet-suresh.com/2011/02/how-to-inserteditupdate-and-delete-data.html

+0

嗨...謝謝..我正在使用detailsview ....什麼是detailsview的等價物......是一樣的嗎? – EagleFox

+0

不確定,但事件是不同的。請參閱下面的鏈接。希望它可以幫助你http://stackoverflow.com/questions/1992660/how-to-modify-input-data-in-itemupdating-event-of-detailsview – rach

+0

謝謝user1848739 ...但我仍然無法得到它工作 – EagleFox