如何在网格视图中禁用特定命令字段

本文关键字:命令 字段 网格 视图 | 更新日期: 2023-09-27 18:34:43

我有一个带有标签和用于编辑的命令字段的网格视图。如果标签包含今天的日期,我想禁用命令字段。

应启用空标签的所有命令字段。我怎样才能做到这一点?

谢谢

阿斯普克斯 -

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="Schedule Date">
<ItemTemplate>
<asp:Label ID="schedule" runat="server" Text='<%# Eval("Date","{0:dd-MMM-yy}") %>'></asp:Label>
</ItemTemplate>
<asp:CommandField ShowEditButton="true" EditText="Click here to Schedule/Re-Schedule" UpdateText="Submit" HeaderText="Schedule/Re-Schedule" />
</Columns>
</asp:GridView>

如何在网格视图中禁用特定命令字段

如果你使用命令字段作为linkButton会更好:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" 
    onrowdatabound="gv_RowDataBound">
    <Columns>
        <asp:TemplateField HeaderText="Schedule Date">
            <ItemTemplate>
                <asp:Label ID="schedule" runat="server" Text='10:25-02-2015'></asp:Label>
            </ItemTemplate>
            </asp:TemplateField>
        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                    CommandName="Edit" Text="Edit"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

然后,您可以使用行数据绑定事件:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Label schedule = (Label)e.Row.FindControl("schedule");
            LinkButton LinkButton1 = (LinkButton)e.Row.FindControl("LinkButton1");
            if (schedule.Text == string.Empty)
            {
                LinkButton1.Enabled = false;
            }
            else
            {
                LinkButton1.Enabled = true;
            }
        }
    }

这将对您有所帮助!