Horizontal/Vertical只能是这两个字符

解决方案 »

  1.   

    我想问题可能在于数据库中的这个字段值为空,所以会报错.你可以写一个函数,先判断一下数据库中的值,然后通过返回值来绑定这个属性
     <asp:RadioButtonList ID="optOptions" Runat="server" CssClass="Normal" Visible="False" RepeatDirection='<%# GetDirection(DataBinder.Eval(Container.DataItem,"OptionMode")) %>' 
                   DataValueField="SurveyOptionId" DataTextField="OptionName"></asp:RadioButtonList> 然后在codebehind里这样写
    public string GetDirection(string _mode)
    {
    if(_mode.Trim()!=String.Empty)
    return _mode;
    else
    return "Horizontal"; //当然你也可以返回"Vertical"
    }
      

  2.   

    谢谢,可是,目前我的数据库是这样设置的:
    列名          数据类型    长度
    OptionMode      char       10表中数据只有两种:
    Vertical
    Horizontal
    ,我测试过了通过上面的数据绑定可以获得这两个字符串。不过还是提示那样的错误。
    -------------------------------
    不过,我昨天已经把这个问题弄清楚了,是由于RadioButtonList控件的RepeatDirection需要的是枚举类型,只有这两个选项。因此可以通过赋给它1或0这样的值来判断。我的解决方法是
    前台的数据绑定部分:
    RepeatDirection='<%# CType(DataBinder.Eval(Container.DataItem,"OptionMode"),Integer) %>'然后在数据库中把表中的值动态修改为1或者0两种。这样就可以实现这样的功能了。