数据库为bit型的绑定datagrid

wljie1010 2009-03-24 04:56:42
数据库为bit型的绑定datagrid的超链接列上,在datagrid上展示为 true 和 false 了。

有没有方法控制他显示为 1 或 0 呢。

这里是超链接列,不是绑定列。还有我查出来的数据是 1和0,就是在绑定datagrid的时候展示为 true 或者 false 了
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
周公 2009-03-24
  • 打赏
  • 举报
回复
也是可以的,在数据库中对sex字段也是bit值,我是将它转换成男或者女显示的。
周公 2009-03-24
  • 打赏
  • 举报
回复

<ItemTemplate>
<div style="background-color:Green">
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Sex") %>' Visible="false"></asp:Label>
<%#bool.Parse(Eval("Sex").ToString()) == true ? "男" : "女" %>
</div>
<asp:DataList ID="DataList2" runat="server">
<ItemTemplate>
<%#Eval("RealName") %>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
A海阔天空 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yanghj_gc 的回复:]
引用 2 楼 geaim 的回复:
在绑定之前必须要对相应的数据源进行一下处理才行的。

根据个行的值,判断是不是为1,是则将该行的值修改为true否则修改为false,否则不好操作。




这个本来就是各行的值


C# code<asp:repeater id="MyRepeater" runat="server">
<itemtemplate>
<li><%# GetBit(DataBinder.Eval(Container,"DataItem.bit"))%></li>
</itemtemplate>
</asp:repeater>



换成Da…
[/Quote]

   protected String GetBit(object strBit)
{
if (strBit=="true")
{
retruen "1";
}
else
{
return "0";
}
}


A海阔天空 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 geaim 的回复:]
在绑定之前必须要对相应的数据源进行一下处理才行的。

根据个行的值,判断是不是为1,是则将该行的值修改为true否则修改为false,否则不好操作。
[/Quote]



这个本来就是各行的值

<asp:repeater id="MyRepeater" runat="server">
<itemtemplate>
<li><%# GetBit(DataBinder.Eval(Container,"DataItem.bit"))%></li>
</itemtemplate>
</asp:repeater>


换成Datalist
周公 2009-03-24
  • 打赏
  • 举报
回复
采用自定义模版列就可以解决这个问题,或者采用1楼的办法也行。

asp.net夜话之八:数据绑定控件
在asp.net中所有的数据库绑定控件都是从BaseDataBoundControl这个抽象类派生的,这个抽象类定义了几个重要属性和一个重要方法:DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示。DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示。DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。也就是说DataSource和DataSourceID两个属性不能同时使用。数据绑定控件的DataSource控件属性必须是一个可以枚举的数据源,如实现了ICollection、IEnumerable或IListSource接口的类的实例。
wljie1010 2009-03-24
  • 打赏
  • 举报
回复

我现在是动态生成超链接列
hyperLinkColumn.DataNavigateUrlField = tableCode + "." + fieldCode;
hyperLinkColumn.DataNavigateUrlFormatString = url + "&Sql=" +tableCode + "." + fieldCode + "={0}";

这时候如果 tableCode + "." + fieldCode 这个字段在数据库中是bit型

绑定到页面就会变成 true,false.

从而导致我的 Sql 变成 类似 canDo = true

而 canDo = true 进入数据库查询是错误的。我需要的是 canDo = 1
birdlonger 2009-03-24
  • 打赏
  • 举报
回复
查询的时候把bit 转换为char 的1 ,0 ;
哈哈潜伏哥 2009-03-24
  • 打赏
  • 举报
回复
在绑定之前必须要对相应的数据源进行一下处理才行的。

根据个行的值,判断是不是为1,是则将该行的值修改为true否则修改为false,否则不好操作。
A海阔天空 2009-03-24
  • 打赏
  • 举报
回复
有啊。在后台用个函数判断下然后再返回

protected String GetBit(object strBit)
{
if (strBit=="true")
{
retruen "1";
}
else
{
return "0";
}
}

在前台

<%# GetBit(DataBinder.Eval(Container,"DataItem.bit"))%>


大概是这个意思。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧