我有一个gridview和一个datsource。数据源中有一列我想要解释,如果它是某个值(文本),则显示一个复选标记。 My question is similar to this。它可行吗?注意:如果我在gridview中添加图像字段,它会尝试绑定到数据库中的图像URL,而不是我的情况。我不想更改数据库,只需在gridview中显示一个复选标记。
< - 编辑:包含要与复选框区分的图像。
答案 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
前面没有使用'单引号或“双引号”