Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据条件启用/禁用Gridview中的链接按钮_C#_Asp.net_Gridview - Fatal编程技术网

C# 根据条件启用/禁用Gridview中的链接按钮

C# 根据条件启用/禁用Gridview中的链接按钮,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个gridview gvData,我想要的是当TransType列中的一条记录等于summer,然后显示Write,RT。如果它有任何其他内容,则只显示Close Edit Delete “关闭”“编辑”“删除”“写入”RT位于模板字段中 ID TRANSTYPE R C TIME 1 Dessert 12:00 12:05 12 Close Edit Delete Write RT <asp:Template

我有一个gridview gvData,我想要的是当TransType列中的一条记录等于summer,然后显示Write,RT。如果它有任何其他内容,则只显示Close Edit Delete

“关闭”“编辑”“删除”“写入”RT位于模板字段中

ID    TRANSTYPE    R      C     TIME    
1      Dessert   12:00  12:05    12      Close Edit Delete Write RT


<asp:TemplateField ShowHeader="False">
<ItemTemplate>
    <asp:LinkButton ID="lbClose" runat="server" CausesValidation="False" CommandName="CloseClicked" OnClick="CloseClick_Click">Close</asp:LinkButton>
     <asp:LinkButton ID="lbEdit" runat="server" CausesValidation="False" CommandName="EditRow" OnClick="Edit_Click" CommandArgument='<%# Eval("Id")%>'>Edit</asp:LinkButton>
     <asp:LinkButton ID="lbDelete" runat="server" CausesValidation="False" CommandName="DeleteRow"OnClick="Delete_Click" OnClientClick="return confirm('Are you sure you want to Delete this Transaction?');">Delete ||</asp:LinkButton>
    <asp:LinkButton ID="lbWrite" runat="server" CausesValidation="False" CommandName="WriteClicked" OnClick="Write_Click">Write</asp:LinkButton>
    <asp:LinkButton ID="lbRT" runat="server" CausesValidation="False" CommandName="RT"OnClick="RT_Click">RT</asp:LinkButton>
</ItemTemplate>
ID转换类型R-C时间
1甜点12:00 12:05 12关闭编辑删除写入RT
接近
编辑
删除||
写
RT

在您的
gvData\u OnRowDataBound
上,检查条件,并为每一行将相应的按钮
可见
属性设置为false

            protected void gvData_OnRowDataBound(object sender, GridViewRowEventArgs e)
            {
                LinkButton lbClose = (LinkButton)e.Row.Cells[5].FindControl("lbClose");
                LinkButton lbEdit = (LinkButton)e.Row.Cells[5].FindControl("lbEdit");
                LinkButton lbDelete = (LinkButton)e.Row.Cells[5].FindControl("lbDelete");
                LinkButton lbWrite = (LinkButton)e.Row.Cells[5].FindControl("lbWrite");
                LinkButton lbRT = (LinkButton)e.Row.Cells[5].FindControl("lbRT");

                if(e.Row.Cells[1].Text=="Dessert")
                {
                    lbClose.Visible = false;
                    lbEdit.Visible = false;
                    lbDelete.Visible = false;
                }
                else
                {
                    lbWrite.Visible = false;
                    lbRT.Visible = false;
                }
            }

在过去,我创建了一个代码隐藏方法,该方法计算并返回布尔值

protected bool IsTransTypeDessert(string transType)
{
    return transType.ToLower() == "dessert";
}
然后在标记中调用该方法,如下所示:

<asp:LinkButton ID="lbWrite" runat="server" CausesValidation="False" CommandName="WriteClicked" OnClick="Write_Click"
Visible='<%# IsTransTypeDessert(Eval("TRANSTYPE") != null ? Eval("TRANSTYPE").ToString() : "") %>'>Write</asp:LinkButton>
写入

我不记得的一件事是
IsTranstypeSummit
是否需要返回“true”或“false”的字符串表示形式,或者bool是否可以工作。测试将决定它。

我编辑了你的答案,我通过lblTrans找到了Trans。请+1我的问题是开箱即用的好答案+1。我编辑以确保类型匹配正确。