c# - 从代码隐藏中获取 edititemtemplate 的值

标签 c# label detailsview edititemtemplate

我有一个详细信息 View ,我从其中获取了一些来自成员(member)资料的数据,并将其显示在详细信息 View 中......这很好用:

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

REMARK:它可能会受到影响,具体取决于数据绑定(bind)模式。如果是这样,请告诉我并举个例子。

关于c# - 从代码隐藏中获取 edititemtemplate 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14324869/

相关文章:

html - 在触摸移动设备上激活单选标签

iphone - 如何设置表格 View 单元格适应标签?

css - 何时应在 html 形式的 span/dev 标签上使用 label 标签?

javascript - 使用 javascript 隐藏详细信息 View 字段

c# - 将数据库附加到exe的可能方法

c# - 不知道为什么我收到 InvalidCastException

c# - 在 C# 中显示 unicode 文本

c# - 如何在 Mac 上从命令行编译 Mono 项目

c# - 防止 "Edit"用户控件上的 CSS 更改?

php - 如何使用 php 制作搜索结果详细信息页面