在gridview中显示复选标记

时间:2011-10-10 20:20:58

标签: asp.net gridview sqldatasource

我有一个gridview和一个datsource。数据源中有一列我想要解释,如果它是某个值(文本),则显示一个复选标记。 My question is similar to this。它可行吗?注意:如果我在gridview中添加图像字段,它会尝试绑定到数据库中的图像URL,而不是我的情况。我不想更改数据库,只需在gridview中显示一个复选标记。

< - 编辑:包含要与复选框区分的图像。

4 个答案:

答案 0 :(得分:1)

将模板列插入网格视图列:

<asp:TemplateField>
    <ItemTemplate>
       <asp:CheckBox ID="chkSelect" runat="server" />
    </ItemTemplate>
 </asp:TemplateField>

编辑:用于复选标记

<asp:TemplateField>
    <ItemTemplate>
       <asp:Image ImageUrl='<%# GetCheckMark(Eval("Checked")) %>' ID="imgCheckMark" runat="server" />
    </ItemTemplate>
 </asp:TemplateField>
代码隐藏中的

protected string GetCheckMark(bool checked){
  return checked?"~/images/checkmark.gif":"~/images/uncheckmark.gif";
}

就是这样:))

答案 1 :(得分:1)

我希望这会帮助您如何将复选框放在网格视图中

%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckBoxExample.aspx.cs" Inherits="CheckBoxExample" %>

<title>CheckBox Example</title>

<form id="form1" runat="server">

<div>

    <asp:GridView ID="ProductGridView" runat="server" AutoGenerateColumns="False" DataKeyNames="ItemId">
        <Columns>

            <asp:BoundField DataField="ItemDescription" DataFormatString="{0}" HeaderText="Item" />

            <asp:BoundField DataField="ItemPrice" DataFormatString="{0:C}" HeaderText="Price" />

            <asp:TemplateField HeaderText="Purchase">

               <ItemTemplate>

                    <asp:CheckBox ID="CheckBoxPurchase" runat="server" Enabled="true" />
               </ItemTemplate>

            </asp:TemplateField>

        </Columns>

    </asp:GridView>

    <asp:Button ID="Purchase" runat="server" Text="Purchase Checked Items" />

</div>

</form>

答案 2 :(得分:0)

如果您绑定到数据源中的布尔列,则可以向GridView的列添加CheckBoxField,这将显示您需要的内容。

但听起来你想根据文本栏选中框。解决此问题的一种方法是在检索数据源后向数据源添加一个布尔列,然后根据文本字段为每一行手动设置此字段。

我希望这是有道理的。

答案 3 :(得分:0)

解决方案(回答自己)。这是我的模板字段(仅显示相关代码)

<asp:TemplateField HeaderText="Image" >
<HeaderTemplate> </HeaderTemplate> 
<ItemTemplate>        // all other templates removed
<asp:Image ImageUrl="Images/checkmark_s.png" runat="server" Visible=<%#  showImageIfCalled((string)Eval("isCalled")) %> />
</ItemTemplate>
</asp:TemplateField>

这是返回true或false

的函数
protected bool showImageIfCalled(string val)
    {
        if (val == "called")
           return true;
        else
            return false;
    }

请注意,我在Visible = field

前面没有使用'单引号或“双引号”