Asp.net detailsView中templatefield(linkbutton)的Findcontrol失败
当DetailsView不是只读模式时,我想将templatefield(linkbutton)设置为不可见。我创建了一个linkbutton来替换自动生成的“删除”按钮,并希望在编辑和插入时隐藏它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"
<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;
}
}