Asp.net detailsView中templatefield(linkbutton)的Findcontrol失败

Asp.net detailsView中templatefield(linkbutton)的Findcontrol失败,asp.net,Asp.net,当DetailsView不是只读模式时,我想将templatefield(linkbutton)设置为不可见。我创建了一个linkbutton来替换自动生成的“删除”按钮,并希望在编辑和插入时隐藏它 <asp:DetailsView ID="resultDetailsView" runat="server" AutoGenerateRows="False" DataKeyNames="smo_code,id" DataSourceID="detailviewDataSource"

当DetailsView不是只读模式时,我想将templatefield(linkbutton)设置为不可见。我创建了一个linkbutton来替换自动生成的“删除”按钮,并希望在编辑和插入时隐藏它

<asp:DetailsView ID="resultDetailsView" runat="server" AutoGenerateRows="False" DataKeyNames="smo_code,id"
    DataSourceID="detailviewDataSource" Height="50px" Width="125px" OnItemInserting="resultDetailsView_ItemInserting"
    OnItemUpdating="resultDetailsView_ItemUpdating" OnItemUpdated="resultDetailsView_ItemUpdated"
    OnItemDeleted="resultDetailsView_ItemDeleted" OnItemInserted="resultDetailsView_ItemInserted"
    OnItemDeleting="resultDetailsView_ItemDeleting" OnModeChanging="resultDetailsView_ModeChanging"
    OnDataBound="resultDetailsView_DataBound" OnItemCommand="resultDetailsView_ItemCommand">
    <Fields>
        <asp:BoundField DataField="event" HeaderText="event" SortExpression="event" />
        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="deleteLink" runat="server" CommandName="Delete" Text="Delete"
                    OnClientClick='return confirm("Are you sure you want to delete this item?");' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowDeleteButton="False" ShowEditButton="True" ShowInsertButton="True" />
    </Fields>
</asp:DetailsView>

可以在.DataBind()方法之后执行此操作。下面是一个很好的例子

甚至这也是一个很好的例子

对不起!我的案子没有解决。它为deleteLink生成了“ReferenceException:对象引用未设置为对象的实例”。DataBind()应该应用在哪里?多谢你的指路!
protected void resultDetailsView_DataBound(object sender, EventArgs e)
{
    LinkButton deleteLink = (LinkButton)resultDetailsView.FindControl("deleteLink");
    if (resultDetailsView.CurrentMode == DetailsViewMode.ReadOnly)
    {
        deleteLink.Visible = true;
    }
    else
    {
        deleteLink.Visible = false;
    }
 }