C# 从codebehind获取edititemtemplate的值

C# 从codebehind获取edititemtemplate的值,c#,label,detailsview,edititemtemplate,C#,Label,Detailsview,Edititemtemplate,我有一个detailsview,其中我从会员资格档案中获取了一些数据,并将其显示在detailsview上……这很好: <ItemTemplate> <asp:label ID="FirstName" runat="server" /> </ItemTemplate> 我应该改用ItemUpdate吗?或者,当单击edit按钮时,是否还有另一种方法可以在edit时填充firstname字段?另外,我在编辑模式下将其保留为“

我有一个detailsview,其中我从会员资格档案中获取了一些数据,并将其显示在detailsview上……这很好:

 <ItemTemplate>
                <asp:label ID="FirstName" runat="server" />
 </ItemTemplate>

我应该改用ItemUpdate吗?或者,当单击edit按钮时,是否还有另一种方法可以在edit时填充firstname字段?另外,我在编辑模式下将其保留为“标签”(通常为文本框)的原因是该字段必须是只读的。

将行更新和行编辑事件添加到gridview


当您进入编辑模式时,不会触发事件ItemUpdate。必须使用数据绑定事件来正确设置所需的文本值

如有必要,您可以询问DetailsView的CurrentMode属性以了解是否正在编辑或显示

结果如下所示:

    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;
    }
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控件中定义数据绑定事件


备注:它可能会受到数据绑定模式的影响。如果是这样,请让我知道并举个例子。

您好。。。谢谢我正在使用detailsview。。。。detailsview的等价物是什么。。。相同吗?不确定,但事件不同。请参考下面的链接。希望对你有帮助是的。。。它被定义为。。。我有另一个if语句,它加载dropdowlist,运行良好。。。所以我知道它调用的方法是
DetailsView1\u itemUpdate
在编辑时触发事件?