......
<asp:TemplateColumn HeaderText="contract" SortExpression="contract">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "contract", "{0}") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox runat="server" id="edit_Contract" Checked='<%# DataBinder.Eval(Container.DataItem, "contract") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
..........
</Columns>代码如上↑↑↑↑,出错如下↓↓↓↓↓
229行出错。。装载页面的时候好好的。一点编辑就出错 指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 227: </ItemTemplate>
行 228: <EditItemTemplate>
行 229: <asp:CheckBox runat="server" id="edit_Contract" Checked='<%# DataBinder.Eval(Container.DataItem, "contract") %>'/>
行 230: </EditItemTemplate>
行 231: </asp:TemplateColumn>
contract的值是"0"或"1"字符串型的。。,想让CheckBox的Checked属性在contract值为"0"的时候为FALSE,contract值为"1" 的时候为TRUE。怎么办,请大侠们指点一下。。刚学ASP.net.请大家帮一下。。哈。
<asp:TemplateColumn HeaderText="contract" SortExpression="contract">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "contract", "{0}") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox runat="server" id="edit_Contract" Checked='<%# DataBinder.Eval(Container.DataItem, "contract") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
..........
</Columns>代码如上↑↑↑↑,出错如下↓↓↓↓↓
229行出错。。装载页面的时候好好的。一点编辑就出错 指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误:
行 227: </ItemTemplate>
行 228: <EditItemTemplate>
行 229: <asp:CheckBox runat="server" id="edit_Contract" Checked='<%# DataBinder.Eval(Container.DataItem, "contract") %>'/>
行 230: </EditItemTemplate>
行 231: </asp:TemplateColumn>
contract的值是"0"或"1"字符串型的。。,想让CheckBox的Checked属性在contract值为"0"的时候为FALSE,contract值为"1" 的时候为TRUE。怎么办,请大侠们指点一下。。刚学ASP.net.请大家帮一下。。哈。
public bool MyBool(string contract)
{
if()
return true;
else
return false
}
在CS页面写一个函数
private string change(string str)
{
if(str == "1")
return "true";
else
return "false";
}
<asp:CheckBox runat="server" id="edit_Contract" Checked='<%# change((DataBinder.Eval(Container.DataItem, "contract")).ToString()) %>'/>
<asp:CheckBox runat="server" id="edit_Contract" Checked='<%# DataBinder.Eval(Container.DataItem, "contract") %>'/>
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0030: 无法将类型“string”转换为“bool”源错误: [没有相关的源行]
{
if(contract == "1")
return true;
else
return false
}
注意是两个"="的
public string MyBool(string contract)
{
if(contract == "1")
return "true";
else
return "false"
}
chenhaoying(风雨无阻) 的方法可行。不用改代码。只把contract设成bit就可以用。。
microtea(小傅) 的函数没有问题。。不用改数据库。我原来是nvarchar型的。。把下面的代码
<asp:CheckBox runat="server" id="edit_Contract" Checked='<%# MyBool(DataBinder.Eval(Container.DataItem, "contract"))%>'/>
改成:
<asp:CheckBox runat="server" id="edit_Contract" Checked='<%# MyBool((DataBinder.Eval(Container.DataItem, "contract")).ToString())%>'/>
就行了。。
多谢二位了。。今天学了不少。。这里分太少了。我再开一帖。感谢二位。