向大家请教一个问题,我用的是 win2000,sql server 2000, vs.net 2003,(C#) 现在想在 DataGrid 中绑定一个 CheckBox   <asp:TemplateColumn HeaderText="物料通用性" ItemStyle-Width="16%">
    <ItemTemplate>
        <asp:CheckBox ID="cbCurrency" Runat="server"></asp:CheckBox>
    </ItemTemplate>
</asp:TemplateColumn> 
 
表中的一个字段 XXXX (只有两个值Y或者N),我的想法是,当 XXXX 为 Y 时 DataGrid 中的 CheckBox 就选中,当 XXXX 为 N 时,则不被选中,我应该怎样实现他??
请各位帮帮忙,我在网上奋战了昨天一个下午了,还没有搞定,今天发帖请教大家,多谢帮忙!!

解决方案 »

  1.   


     <asp:CheckBox ID="cbCurrency" Checked='<%#Eval("field").ToString()=="Y"?true:false%>'
     Runat="server"> </asp:CheckBox> 这是05的写法,03可能需要改一下
      

  2.   

    03是不是要複雜一點?
    <asp:CheckBox Runat="server" ID="cbCurrency" Checked='<%# GetResult(DataBinder.Eval(Container.DataItem,"context"))>'%></asp:CheckBox>
    protected bool GetResult(object o)
    {
    bool result = false;
    if(o.ToString() != null)
    {
    switch(o.ToString())
    {
    case "Y":
    result = true;
    break;
    default:
    break;
    }
    }
    return result;
    }
      

  3.   

    搞錯
    <asp:CheckBox Runat="server" ID="cbCurrency" Checked='<%# GetResult(DataBinder.Eval(Container.DataItem,"context"))%>'</asp:CheckBox>
    protected bool GetResult(object o)
    {
    bool result = false;
    if(o.ToString() != null)
    {
    switch(o.ToString())
    {
    case "Y":
    result = true;
    break;
    default:
    break;
    }
    }
    return result;
    }
      

  4.   

    <asp:TemplateColumn HeaderText="物料通用性" ItemStyle-Width="16%"> 
         <ItemTemplate> 
             <asp:CheckBox ID="cbCurrency" Runat="server" Checked='<%# DataBinder.Eval(Container.DataItem, "field").ToString().ToUpper() == "Y" ? true : false %>'
    > </asp:CheckBox> 
         </ItemTemplate> 
    </asp:TemplateColumn>  
      

  5.   

    <asp:CheckBox Runat="server" ID="cbCurrency" Checked='<%# GetResult(DataBinder.Eval(Container.DataItem,"context"))%>'></asp:CheckBox>
    protected bool GetResult(object o)
    {
    bool result = false;
    if(o.ToString() != null)
    {
    switch(o.ToString())
    {
    case "Y":
    result = true;
    break;
    default:
    break;
    }
    }
    return result;
    }
      

  6.   

    用03就把 EVAL 换成DataBinder.Eval,其他一样