我有一个详细信息视图,我从会员资料中获取了几个数据,并在详细信息视图中显示...这很好用:
<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 :(得分: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控件中定义DataBound事件。
备注:根据数据绑定模式,它可能会受到影响。如果是这样,请告诉我并举个例子。
答案 1 :(得分:0)
将RowUpdating和RowEditing事件添加到gridview。
http://www.aspdotnet-suresh.com/2011/02/how-to-inserteditupdate-and-delete-data.html