一个关于DataGrid的问题

netease 2003-11-17 10:33:44
<asp:TemplateColumn HeaderText="是否系统">
<ItemTemplate>
<asp:CheckBox id="CheckBox2" runat="server" Checked='<%# DataBinder.Eval(Container, "DataItem.sfxt")%>'>
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
以上是我的页面
Sql语句是:
select pzbm,pzmc,case sfsy when 'Y' then 'true' else 'false' end as sfsy,case sfxt when 'Y' then 'true' else 'false' end as sfxt from t_PinZhong
结果出错,错误信息是:

行 25:<asp:TemplateColumn HeaderText="是否使用">
行 26:<ItemTemplate>
行 27:<asp:CheckBox id="CheckBox1" runat="server" Checked='<%# DataBinder.Eval(Container, "DataItem.sfsy")%>'>
行 28:</asp:CheckBox>
行 29:</ItemTemplate>


源文件: c:\inetpub\wwwroot\WebApplication3\WebForm2.aspx 行: 27

堆栈跟踪:
[InvalidCastException: 指定的转换无效。]
ASP.WebForm2_aspx.__DataBind__control13(Object sender, EventArgs e) in c:\inetpub\wwwroot\WebApplication3\WebForm2.aspx:27
System.Web.UI.Control.OnDataBinding(EventArgs e)
System.Web.UI.Control.DataBind()
System.Web.UI.Control.DataBind()
System.Web.UI.Control.DataBind()
System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource)
System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
WebApplication3.WebForm2.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\webapplication3\webform2.aspx.cs:36
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
...全文
58 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotiebing 2003-11-18
  • 打赏
  • 举报
回复
试不是oracle 数据库呀??
netease 2003-11-18
  • 打赏
  • 举报
回复
呵呵,我搞定了
<asp:CheckBox id="CheckBox2" runat="server" Checked='<%#(DataBinder.Eval(Container, "DataItem.sfsy").ToString().Equals("Y"))?true:false%>'>
acewang 2003-11-18
  • 打赏
  • 举报
回复
Checked='<%#(DataBinder.Eval(Container, "DataItem.sfsy")=="Y")? "true":"false"%>'
netease 2003-11-18
  • 打赏
  • 举报
回复
改了,出现如下错误:
编译器错误信息: CS1012: Too many characters in character literal
CinnXu 2003-11-17
  • 打赏
  • 举报
回复
<asp:CheckBox id="CheckBox1" runat="server" Checked="<%#(DataBinder.Eval(Container, 'DataItem.sfsy')=='Y')?'true':'false'%>">
CinnXu 2003-11-17
  • 打赏
  • 举报
回复
<asp:CheckBox id="CheckBox1" runat="server" Checked="<%#(DataBinder.Eval(Container, 'DataItem.sfsy'))=='Y'%>"
改成这样
netease 2003-11-17
  • 打赏
  • 举报
回复
我按照你的意思改为:
<asp:CheckBox id="CheckBox1" runat="server" Checked='<%# ((Container.DataItem)["sfsy"].ToString()=="Y")?"true":"false"%>'>
发现如下错误
编译器错误信息: CS0021: Cannot apply indexing with [] to an expression of type 'object'
CinnXu 2003-11-17
  • 打赏
  • 举报
回复
<ItemTemplate>
<%#((Container.DataItem)["check"].ToString()=="1")?"true":"false"%>
</ItemTemplate>

我在我的一个程序里是这样写,就不用改sql里面改数据类型了
netease 2003-11-17
  • 打赏
  • 举报
回复
我就是想知道这里出了什么问题呀,晕~~~~
另外,如果我改变数据库的字段为bit,然后不做Case转换,这样能正常运行。
但是现在我的字段是char(1)呀,我用Case转换一下却不行呢,我尝试在Sql语句中转换为1、0或者'true'、'false'都不行。
救命了~~~~~~~~~~~
yanyl2001 2003-11-17
  • 打赏
  • 举报
回复
<asp:CheckBox Checked='<%# DataBinder.EvaContainer, "DataItem.sfsy")%>'>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这里的事

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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