Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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,我有一个我确信很容易解决的问题,我只是不知道该怎么办。 这是我的密码: --> --> 标签“lbl_shipped”显示了正确的值,即“是”或“否” 但是,我想添加一个按钮“lnk_ship”,基于 或者该值为“是”(显示按钮)或“否”(不显示按钮) 我的问题是,我在Visible关键字上使用条件代码,并且我正在测试该值,但它似乎忽略了“shipped”的值 这里主要有两行,第一行显示值,第二行是条件行,条件行不起作用。它不断显示错误: Add.ToString()即: 我刚刚快速模

我有一个我确信很容易解决的问题,我只是不知道该怎么办。 这是我的密码:



--> -->
标签“lbl_shipped”显示了正确的值,即“是”或“否” 但是,我想添加一个按钮“lnk_ship”,基于 或者该值为“是”(显示按钮)或“否”(不显示按钮)

我的问题是,我在Visible关键字上使用条件代码,并且我正在测试该值,但它似乎忽略了“shipped”的值

这里主要有两行,第一行显示值,第二行是条件行,条件行不起作用。它不断显示错误:


Add.ToString()即:


我刚刚快速模拟了一些东西,它正在为我工作(ASP.NET web forms targeting.NET 4,VS2012),或许可以看看:

Default.aspx 包含以下
GridView
definition,我在一个新的web表单项目中随机添加了它

<asp:GridView runat="server" ID="gridMe" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="ID">
            <ItemTemplate>
                <asp:Label ID="lblID" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Name">
            <ItemTemplate>
                <asp:Button runat="server" ID="btnName" Text="Hi" Visible='<%# DataBinder.Eval(Container.DataItem, "Name").ToString() == "Bob" %>'/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

谢谢你,Irfan,不幸的是,按钮仍然没有显示在“是”行上。非常感谢您的帮助,我会继续尝试。确保css类没有显示:none@PaulT.RykielI想让您知道我发现了问题。。。我能够在代码隐藏中添加一个方法并运行debug,因为结果显示字符串为“Yes”,但后面有空格。因此,它的价值是“是”。但是,我想说谢谢你的帮助。最好的Regards@IrfanTahirKheli-+1来自我以及您发现的
.ToString()
。谢谢Scotty。。。我发现了问题。这真的很愚蠢,我测试的值是“是”,但Sql表中的值后面有7个空格。但是,谢谢你的帮助。@PaulT.Rykiel-我很荣幸。有时候,比较一些非常简单的东西可以帮助你隔离问题。
<asp:Button ID="lnk_ship" runat="server" CssClass="btn-mini" Text="Ship Software" Visible='<%# DataBinder.Eval(Container.DataItem, "shipped" ).ToString() == "Yes" ? true : false %>' />
<asp:GridView runat="server" ID="gridMe" AutoGenerateColumns="False">
    <Columns>
        <asp:TemplateField HeaderText="ID">
            <ItemTemplate>
                <asp:Label ID="lblID" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Name">
            <ItemTemplate>
                <asp:Button runat="server" ID="btnName" Text="Hi" Visible='<%# DataBinder.Eval(Container.DataItem, "Name").ToString() == "Bob" %>'/>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var list = new List<Thing>
            {
                new Thing() {ID = 1, Name = "Bob"},
                new Thing() {ID = 2, Name = "Geraldine"}
            };
        gridMe.DataSource = list;
        gridMe.DataBind();
    }
}

public class Thing
{
    public int ID { get; set; }
    public string Name { get; set; }
}
ID  Name
1   [Hi]
2