我有一个gridview和一个datasource。数据源中有一列我想解释并显示一个复选标记,如果它是特定值(文本)。 My question is similar to this。它可行吗?注意:如果我在gridview中添加图像字段,它会尝试绑定到数据库中的图像url,这对我来说并非如此。我不想更改数据库,只需在gridview中显示复选标记。在gridview中显示复选标记
< - 编辑:包括图像区分复选框。
我有一个gridview和一个datasource。数据源中有一列我想解释并显示一个复选标记,如果它是特定值(文本)。 My question is similar to this。它可行吗?注意:如果我在gridview中添加图像字段,它会尝试绑定到数据库中的图像url,这对我来说并非如此。我不想更改数据库,只需在gridview中显示复选标记。在gridview中显示复选标记
< - 编辑:包括图像区分复选框。
解决方案(我回答)。这是我的模板场(只显示培训相关的代码)
<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>
这是返回,我没有使用“单引号或‘双引号’真或假
protected bool showImageIfCalled(string val)
{
if (val == "called")
return true;
else
return false;
}
通知功能前面的Visible =字段
如果您绑定到数据源中的布尔列,您可以将CheckBoxField
添加到GridView的列中,这将显示您需要的内容。
但它听起来像要检查基于文本列的框。解决这个问题的一种方法是,在检索数据源后,向数据源添加一个布尔列,然后根据文本字段为每行手动设置此字段。
我希望这是有道理的。
插入模板列到你的网格视图的列:
<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";
}
和完蛋了:)
再次选中标记,而不是复选框:) :) –
您可以使用此jquery插件将复选框转换为复选标记http:// jqidealforms。com/ –
这对我很好,虽然“checked”是一个C#关键字,需要更改为其他内容。 – azpc
我希望这将帮助你如何把复选框网格视图
%@ 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>
内
对不起,问题是要求复选标记,而不是复选框。我在正确的轨道上,但需要从templatefield调用一个函数并传递字段的值,以便我可以从函数返回true或false。谢谢 –
我想我必须添加模板字段并在项目模板中添加一个图像链接。 –
模板字段如此不受欢迎? –