我有一个详细信息视图,我从会员资料中获取了几个数据,并在详细信息视图中显示…这样可以正常工作:
<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”(通常是文本框)的原因是该字段必须是只读的.
解决方法
进入编辑模式时,不会触发事件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事件.
备注:根据数据绑定模式,它可能会受到影响.如果是这样,请告诉我并举个例子.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。