微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 从codebehind获取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”(通常是文本框)的原因是该字段必须是只读的.

解决方法

进入编辑模式时,不会触发事件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] 举报,一经查实,本站将立刻删除。

相关推荐