加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从codebehind获取edititemtemplate的值

发布时间:2020-12-15 21:45:32 所属栏目:百科 来源:网络整理
导读:我有一个详细信息视图,我从会员资料中获取了几个数据,并在详细信息视图中显示…这样可以正常工作: ItemTemplate asp:label ID="FirstName" runat="server" / /ItemTemplate 但是当我点击编辑按钮时,该字段上没有任何内容.这就是我在编辑模板上所做的事情:
我有一个详细信息视图,我从会员资料中获取了几个数据,并在详细信息视图中显示…这样可以正常工作:

<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事件.

备注:根据数据绑定模式,它可能会受到影响.如果是这样,请告诉我并举个例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读