c# - 如何在模板字段 gridview 中添加条件按钮?

标签 c# asp.net gridview

我有一个包含一些字段的 gridview,我想在 Process 字段有值时在 TemplateField 中显示按钮。

这是我的代码:

  <asp:GridView ID="grdList" PageSize="20" runat="server" DataSourceID="ODList" AllowPaging="True"
        AllowSorting="True" PagerSettings-Position="Top" AutoGenerateColumns="False"
        ShowFooter="True" ShowHeaderWhenEmpty="True" OnPageIndexChanged="grdList_PageIndexChanged">
        <Columns>
            <asp:BoundField DataField="MeasureCatalogId" SortExpression="MeasureCatalogId" />
            <asp:BoundField DataField="MeasureName"  SortExpression="MeasureName" />                
             <asp:TemplateField SortExpression="Process">
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server" Text='<%# Bind("Process") %>'></asp:Label>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("LevelId") %>'></asp:TextBox>
                </EditItemTemplate>
            </asp:TemplateField>             
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <%if(????????) -- want condition for process!= ""
                      {
                    %>
                      <img class="semPopup" sempopupurl='<%=Constant.AppPath %>/forms/baseform/MeasureProcessFromCatalogForm.aspx?t=2&lid=<%# Eval("LevelId") %>&mid=<%# Eval("MeasureCatalogId") %>'
                                    sempopupwidth="<%=width %>" sempopupheight="<%=height %>"
                                    src="../../App_Themes/images/select2.gif" />
                    <%} %>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
        <PagerSettings Position="Top"></PagerSettings>
        <PagerStyle CssClass="grid_pager" />
    </asp:GridView>

最佳答案

作为其他建议的替代方案;您可以尝试在该字段上使用代码表达式:

   <asp:TemplateField ShowHeader="False">
            <ItemTemplate>                
                  <img class="semPopup" sempopupurl='<%=Constant.AppPath %>/forms/baseform/MeasureProcessFromCatalogForm.aspx?t=2&lid=<%# Eval("LevelId") %>&mid=<%# Eval("MeasureCatalogId") %>'
                                sempopupwidth="<%=width %>" sempopupheight="<%=height %>"
                                src="../../App_Themes/images/select2.gif" Visible='<%# ShowButton(Eval("Process")) %>'/>
            </ItemTemplate>
        </asp:TemplateField>

我还没有尝试过,但它遵循与我之前使用的模式类似的模式。代码表达式调用代码隐藏函数'ShowButton',它应该返回一个 bool 值,在这里你可以评估传入的过程的值,如果你喜欢,传回一个真值;否则返回 false,按钮将不会显示。

C#

protected bool ShowButton(object DataItem)
    {
        //Here you can place as many conditions as you like 
        //Provided you always return either true or false
        if (DataItem != null)
            return true;
        else
            return false;
    }

建议的编辑以类似的方式提出,但是可见性设置不是 bool 可见性,而是通过字符串值更改。我相信他们也会加入他们的观点。毕竟,多样性是生活的调味品

关于c# - 如何在模板字段 gridview 中添加条件按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30163885/

相关文章:

c# - 如何在 ASP.NET IDENTITY 中添加自定义表?

android - fragment 中的 GridView 未填充(使用 picasso )

c# - 如何访问 Web 窗体中 GridView 模板字段的属性

c# - 轮询 MSSQL 表的替代方法

c# - 用于双向映射的简单约定自动映射器(实体到/来自 ViewModel)

c# - 更适合我的任务 : background worker or thread pool?

android - 键入 Cast Android 无法将 'Android .view.View 转换为 GridView

c# - 如何从字符串中删除部分 "http://"?

c# - 无法安装 Visual Studio C# NuGet 包

c# - 根据 GridView 中的日期为项目着色 - c# asp.net webforms